一、字符串进阶(格式化输出)
name='小米'
age=18
#print('大家好,我是'+name+'我今年'+age+'岁了') #报错,整型和字符串不能拼接
print('大家好,我是'+name+'我今年'+str(age)+'岁了') #把整型转成字符串可以正常输出,但是比较麻烦
print('大家好,我是',name,'我今年',age,'岁了')
在以后的写代码过程中,经常会涉及到字符串和其他变量在一起使用的环节,但如果变量不是纯字符串,而是int/float/其他的类型的数据,拼接在一起很容易出错
这种时候就可以使用格式化输出 会更方便的输出
格式化-->一种更方便的输出方式
1.可以让你更方便的输出带有变量的数据
2.可以让你更方便的输出一些固定格式的数据
尊敬的XX您好,您X月的账单已经发送,您使用话费共XX元
1.有标准格式
2.里面的x都可以用变量来代替
1.1 f-str
f-str(format string 全拼)
语法:在字符串前面加f,在字符串里把要输出的变量,用{}大括号包裹起来
f'xxx{变量}xxx'
print(f'大家好,我是{name},我今年{age}岁了')
print(f'大家好,我是{name},我今年{age}岁了,余额还有{8.8}元')
#大括号里的变量也是可以进行操作的,可以进行数值运算,切片,索引,步长,方法
print(f'大家好,我是{name[1]},我今年{age+10}岁了,余额还有{8.8}元')
1.2 %占位符
占位符概念-->先占个位置,后续再用具体的数据来顶上
形参:没有具体的数据,只是先占个位置-->角色
实参:有具体的数据,在运行时取代形参-->演员
语法:
'XX%sXX'%数据
'XX%sXX%d'%(数据1,数据2)
%s-->给字符串占位置,后续会来一个字符串
%d-->给整型占位置,后续会来一个整型
%f-->给浮点型占位置,后续会来一个浮点型(默认是6位小数)
%.1f-->带一位小数
%.2f-->带两位小数
name='小米
age=18
print('我今年%d岁'%age)
print('我是%s,我今年%d岁'%(name,age))
print('我是%s,我今年%d岁,现在还剩%f元'%(name,age,8.8))
print('我是%s,我今年%d岁,现在还剩%.2f元'%(name,age,8.8))
print('我是%s,我今年%d岁,现在还剩%.2f元'%(name[0],age+10,8.8))
print('我是%s,我今年%d岁,现在还剩%.2f元'%(name,age,8.8))
print('我是%s,我今年%d岁,现在还剩%.2f元'%([1,2,3],age,8.8))#要传列表和元组可以用%s占位
小细节:
一个位置一个坑,少了位置和多了位置都不可以
%除了可以放变量,也可以直接放数据
放的都是已知数据类型,类型是固定死的
%s的包容性比较强,后续如果你来的数据是整型,浮点型,列表,元组,都可以接收,但是不要所有的类型都是用%s占位
%d和%f是必须来对应的数据
1.3 .format
用法跟占位符,f-str类似,他先用大括号作为占位符,在字符串后面通过.format来传递数据
语法:
'XX{}XX'.format(数据)
'XX{}XX{}'.format(数据,数据)
'XX{下标}XX{下标}'.format(数据,数据)
name='小米'
age=18
print('我是{},我今年{}岁了'.format(name,age))
print('我是{},我今年{}岁了,钱包余额{},梦想是成为{}'.format(name,age,8.8,'科学家'))
#可以通过下标决定输出顺序
#下标要么全放,要么全不放 也不支持负向下标
print('我是{1},我今年{3}岁了,钱包余额{2},梦想是成为{0}'.format('科学家',name,8.8,age)) #下标不要超出,会报错
print('我是{},我今年{}岁了,钱包余额{},梦想是成为{}'.format(name[1],age,8.8+1000,'科学家'))
#在format里面,如果一个数据会反复使用,写上对应的 下标就可以了,不需要反复的数据
print('我是{0},我今年{1}岁了,钱包余额{2},梦想是成为{3},到时候分你{2}'.format(name,age,8.8,'科学家')
二.基本运算符
2.1算数运算符
跟数学优先级一样 (先乘除后加减)
%取余 10%3-->1
10-3-3-3=1,最后的剩下的数就是余数
//整除 10//3-->3
10除3=3.3333... 去掉后面的小数就是他的整除数所以为3
**取幂 3**4 --> 3的4次方
3*3*3*3
>>> print(3**4)
81
>>> a=1
>>> b=2
>>> print(b-a)
1
>>> print(b+a)
3
>>> print(10%4)
2
>>> print(10//4)
2
2.2赋值运算符
赋完值之后 再打印看变量
将=号右侧的结果赋值给等号左侧的变量
需要赋值给谁就把谁放在最左边
>>> a=1
>>> b=2
>>> a=a+b
>>> print(a)
3
>>> a+=b
>>> print(a)
5
>>> b-=a
>>> b
-3
>>> b*=a
>>> b
-15
2.3比较运算符
得到的结果为bool类型
在python中,一个等号是用来赋值,两个等号才是判断是否相等
>>> 7>10
False
>>> a=88
>>> b=66
>>> print(a>b)
True
>>> print(a<b)
False
>>> print(a<=b)
False
>>> print(a!=b)
True
>>> print(a==b)
False
>>> '哈哈'=='哈哈'
True
>>> '哈哈1'=='哈哈'
False
>>> '1'==1
False
>>> 'A'=='a'
False
>>> 1==1
True
2.4逻辑运算符
得到的结果为bool类型
>>> math=100
>>> chinese=90
>>> math>=95 and chinese>=100
False
>>> math>=95 or chinese>=100
True
>>> math>=95 and chinese>=80
True
>>> math>=100 or chinese>=100
True
>>> not True
False
>>> not False
True
>>> not chinese>=100
True
>>> not math>=95
False
2.5成员运算符
得到的结果为bool类型
序列:字符串,元组,列表,字典,集合
>>> talk='小米很美'
>>> '丑' in talk
False
>>> '美' in talk
True
>>> '丑' not in talk
True
>>> '美' not in talk
False
>>> li=[2,3,4,'hh']
>>> '2' in li
False
>>> 'hH' in li
False
>>> 6 not in li
True
>>> 2 in li
True
>>> tu=(False,1,2,'你好')
>>> 'False' in tu
False
>>> False in tu
True
>>> 1 in tu
True
>>> 2 not in tu
False
2.6 运算符优先级
三、练习
1.以今天学的三种格式化输出的方式,分别写三条自我介绍,要求使用至少5个变量,其中需包含:str,int,float,list类型的数据