欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python3 系列之 基础语法篇

程序员文章站 2022-04-24 21:58:46
基础数据类型 整数 python 可以处理任意大小的整数 浮点数 python 可以处理任意大小的浮点数,但是需要注意的一点是:整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的误差。 字符串 在 python 中,字符串常用 '' ' 和 """ 表示,至于这三者之间的区别和 ......

基础数据类型

  • 整数

python 可以处理任意大小的整数

  • 浮点数

python 可以处理任意大小的浮点数,但是需要注意的一点是:整数运算永远是精确的(除法也是精确的),而浮点数运算则可能会有四舍五入的误差。

  • 字符串

在 python 中,字符串常用 '' '""" 表示,至于这三者之间的区别和字符串的编码要求可以参考:python3 系列之 编程规范篇

  • 布尔值

布尔值可以用 and、or 和 not 运算。
and 运算是与运算,只有所有都为 true,and 运算结果才是 true。
or 运算是或运算,只要其中有一个为 true,or 运算结果就是 true。
not 运算是非运算,它是一个单目运算符,把 true 变成 false,false 变成 true。

  • 空值

基本上每种编程语言都有自己的特殊值——空值,在 python 中,用 none 来表示

  • 变量

python 是弱类型语言,因此在定义变量时无需指定变量类型。

列表和元组

列表示例

# 创建列表
mylist = ["one",123,345.67,1233,"hello"]

# 通过下标访问元素
print(mylist[2])

# 通过切片方式访问元素
print(mylist[1:3])

# 遍历列表元素
for target in mylist:
    print(target)

# 更新列表
mylist[1] = "world"
print(mylist)

# 添加元素
mylist.append("beloved")
print(mylist)

# 掺入元素

mylist.insert(0,"hippie")
print(mylist)

# 删除元素
mylist.remove(mylist[1])
print(mylist)

print(len(mylist))
print(mylist.pop())

官网链接:lists

元组示例

tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改。

# 创建空元组
mytuple = ()

# 创建元组
mytuple = ('a','hello','b','world')

# 下标访问元组
print(mytuple[0])

# 删除元组
del mytuple

官网链接:tuple

字典和 set

字典示例

# 创建空元组
mydic = {'a':123,'b':456}

# 修改字典
mydic['b'] = 769

# 删除字典
del mydic['b']

# 清空字典
mydic.clear()

set 示例

python 的 set 和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素。set 和 dict 类似,但是 set 不存储 value 值的。

# 创建 set 类型的数据集
myset = set([1,2,3,3,4,5])

# 添加元素
myset.add(6)

# 删除元素
myset.remove(4)

print(myset)

set1=set('hello')
set2=set(['p','y','y','h','o','n'])
print(set1)
print(set2)

# 交集 (求两个 set 集合中相同的元素)
set3=set1 & set2
print('\n交集 set3:')
print(set3)
# 并集 (合并两个 set 集合的元素并去除重复的值)
set4=set1 | set2
print('\n并集 set4:')
print(set4)
# 差集
set5=set1 - set2
set6=set2 - set1
print('\n差集 set5:')
print(set5)
print('\n差集 set6:')
print( set6)

# 去除海量列表里重复元素,用 hash 来解决也行,只不过感觉在性能上不是很高,用 set 解决还是很不错的
list1 = [111,222,333,444,111,222,333,444,555,666]  
set7=set(list1)
print('\n去除列表里重复元素 set7:')
print(set7)

条件语句(if else)

循环语句(while、for)

函数

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]
  • 传值问题
  • 返回值
  • 参数
  • 匿名函数:lambda
lambda [arg1 [,arg2,.....argn]]:expression

迭代器和生成器

# 1、字符创创建迭代器对象
str1 = 'liangdianshui'
iter1 = iter ( str1 )

# 2、list对象创建迭代器
list1 = [1,2,3,4]
iter2 = iter ( list1 )

# 3、tuple(元祖) 对象创建迭代器
tuple1 = ( 1,2,3,4 )
iter3 = iter ( tuple1 )

# for 循环遍历迭代器对象
for x in iter1 :
    print ( x , end = ' ' )

print('\n------------------------')

# next() 函数遍历迭代器
while true :
    try :
        print ( next ( iter3 ) )
    except stopiteration :
        break

# lsit 生成式(列表生成式)
list1=list ( range (1,31) )
print(list1)

lsit1= [x * x for x in range(1, 11) if x % 2 == 0]
print(lsit1)

lsit1=[x * x for x in range(1, 11)]
print(lsit1)

lsit1= [(x+1,y+1) for x in range(3) for y in range(5)] 
print(lsit1)

# 综合运用
class countdown:
    def __init__(self, n):
        self.start = n

    def __iter__(self):
        n = 0
        while n < self.start:
            yield n
            n += 1

    def __reversed__(self):
        n = self.start - 1
        while n > -1:
            yield n
            n -= 1


for rr in countdown(20):
    print(rr)

for rr in reversed(countdown(20)):
    print(rr)