python语法入门
一、与用户交互
name = input('请输入你的名字:') #接收用户的输入,无论用户输入什么类型,最终返回的数据类型一定是字符串。
关于用户的输入,Python2.x 与Python3.x是有一点区别的,Python2的’用户输入’需要声明数据类型,而Python3不需要,Python2的raw_input与Python3的input一样。
二、格式化输出方式
1、使用占位符方式 %s %d
print('my name is %s , my age is %s'%(name , age)) #这里使用了占位符,后面的%是将变量名与前面的占位符相关联
print('my name is %s, my age is %d'%(name,18)) #这里后面用%d代替了%s,%d占位符只能接收数字类型,%s可以接收任何类型
拓展:
i = 1231412 print('%.2f'%i) #%.2f :保留两位小数
2、format 方式
print('my name is {}, my age is {}'.format(name, age)) #.format 方式
print('my name is {name}, my age is {age}'.format(name = name , age = age)) #指定类型
3、f-string #在Python3.0以后才有
print(f'my name is {name}, my age is {age}') # 指定对象类型
三、基础数据类型
1、整型
定义:如年龄、手机号码、身份证(X除外)
a = 1 # a= int(1)
b = '12' print(type(b)) int(b) print(type(b))
2、浮点型
定义:体重、升高、薪资
f1 = 1.9 # f1 = float(1.9) print(type(f1))
需要注意的是字符串转换为整型时,需要先将字符串转为浮点型,然后再转为整型。
f2 = '1.9' print (type(f2)) f2 = float(f2) print(type(f2)) f2 = int(f2) print(type(f2))
3、复数
>>> a = 1-2j >>> a (1-2j) >>> type(a) <class 'complex'> >>> >>> >>> a.real 1.0 >>> a.imag -2.0
# python2与python3的区别
python2的这个范围[-24xxxxxxxx,24xxxxxxxx],就叫int超过这个范围:long,而在python3中没有长整型这么一说的。
4、字符串
定义:存一些描述性信息,存个人爱好,个人简介
s1 = 'sean' # s1 = str(sean)
python2与Python3区别
Python2:str本质其实是一个拥有8个bit位的序列
Python3: str本质其实是Unicode的序列
PS:
字符引号没有区别但不能混用
如果字符串还有引号,必须嵌套
字符串拼接是开辟一个的新的内存空间,将新的值存入。
4、列表
定义:存一个或者多个不同类型的值
在编程中,索引数数是从0开始的,即第一个对象的索引为[0]
y = ['大象','美女',['read','study']] print(y) print(type(y)) print(y[0]) print(y[2]) print(y[2][0])
l1 = ['sean',18,['study','read']] print(l1) print(type(l1)) l1 = [ ['egon',73,'烫头',['唱','跳','rap']], ['alex',84,'美女'] ] print(l1[0][1]) print(l1[1][2]) print(l1[0][3][2])
5、字典
定义:通过大括号存储数据,通过key,value这种映射关系定义键值对,每个键值对通过都好分隔。
d1 = {''name':'sean', 'age':'18''} # d1 = dict({''name':'sean','age':'18''})
print(d1['name']) print(type(d1)) d2 = {'name':'tank','age':73,'hobby':[ 'piao', '妹子' ]} print(d2['hobby'][0])
6、布尔
主要是用来判断事物的对错,一般布尔类型是不是单独定义的。
tag = True # tag = bool(True) True注意首字母大写 tag1 = False #tag = bool(False) False注意首字母大写
print(1 < 2) a = 1 b = 1 print(a == b) # 等号比较的是value print(a is b) # is比较的是id(地址) a = -213456678789893534121111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222254654.1545454545454444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444 b = -213456678789893534121111111111111111111111111111111122222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222254654.1545454545454444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444 print(a is b)
PS:
值相等的情况下,id不一定相等
id相等的情况下,值不一定相
四、基础运算符
1、算数运算符
a = 9 b = 2 print(a // b) # 取整。 print(a % b) # 取模 print(a ** b) # 次幂 9 ^ 2
2、比较运算符
print(a == b) # 判断运算符左右两边的值是否相等 print(a != b) # 判断运算符左右两边的值是否不相等 print(a > b) print(a >= b)
3、赋值运算符
1)增量赋值
a = 1 a += 1 # a = a + 1 print(a) a -= 1 print(a) a *= 2 print(a) a /= 2 print(a)
2)链式赋值
x = 1 y = 1 z = 1 x = y = z = 1 print(x,y,z)
3)交叉赋值
>>> a = 1 >>> b = 2 >>> print(f'a:'a',b:'b'') File "<stdin>", line 1 print(f'a:'a',b:'b'') ^ SyntaxError: invalid syntax >>> print(f'a:{a},b:{b}') a:1,b:2 >>> c = a >>> a = b >>> b = c >>> print(f'a:{a},b:{b}') a:2,b:1
>>> a = 10 >>> b = 11 >>> a,b = b,a >>> print(a,b) 11 10
4)解压赋值
1 2 3 4 >>> l2 = [2,3,4,5] >>> a,b,c,*_ = l2 #*_可以接收溢出的元素 >>> print(a,b,c) 2 3 4 >>> l3 = [3,4,5,6] >>> *_, a,b,c = l3 >>> print(a,b,c) 4 5 6 >>> a = 10 >>> b = 11 >>> a.b = b,a
6、与或非
>>> a = 1 >>> b = 2 >>> c = 3 >>> print(a<b and b>c) False >>>
>>> a = 1 >>> b = 2 >>> c = 3 >>> print(a<b and b>c) False >>> print(a>b or a<c and b>c) False >>>