1,字符串格式化输出
通过放置个占位符,再把字符串里的占位符与外部的变量做个映射关系。%s就是代表字符串占位符,除此之外,还有%d,是数字占位。
方法一:如下程序
name=input("请输入姓名:") age=int(input('请输入年龄:')) score=int(input("请输入成绩")) msg="我叫%s,年龄%d,成绩%d" %(name,age,score) print(msg)
方法二:如下程序
name1=input("请输入姓名:") age1=input('请输入年龄:') score1=input("请输入成绩") dic={"name":name1,"age":age1,"score":score1} print(dic) msg='我叫%(name)s,今年%(age)s岁,成绩为%(score)s分' %dic print(msg)
ps:格式化输出时,出现%默认为就是占位符的%,但若格式化输出的字符串本身含有%,怎么办呢?只用在其后面再加一个%就可以了。
如下程序:
msg = '我叫%s,今年%d岁,学习进度为2%%' %("张三",21) print(msg)
2,逻辑运算符
逻辑运算符and ,or ,not , 其优先级为:在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
如判断下列逻辑语句的True,False
类型一:前后都是比较的条件
1,3>4 or 4<3 and 1==1 2,1 < 2 and 3 < 4 or 1>2 3,2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 4,1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 5,1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 6,not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
按照优先级的顺序进行判断,结果分别为:False True True False False False
类型二:前后都是数字
print(1 or 2) print(2 or 3) print(0 or 2) print(0 or 3) print(1 and 2) print(0 and 3)
其结果为:1,2,2,3,2,0
ps: x or y , x为真,值就是x,x为假,值是y;
x and y , x为真,值就是y, x为假,值是x。
3,编码的问题
python2解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),而python3对内容进行编码的默认为utf-8,ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
UTF-16 用最少用16位数,去表示一个字符。
GBK:国标,只能中国人自己用, 一个中文用16位,两个字节表示。
4,单位转化关系
1bytes==8bit
1024bytes == 1kB
1024KB == 1MB
1024MB == 1GB
1024GB == 1TB
五:练习题:
1,写代码:计算 1 - 2 + 3 ... + 99 中除了88意外所有数的总和
sum=0 start=0 while start < 99: start=start+1 if start%2 == 1: sum=sum+start elif start==88: pass else: sum=sum-start print(sum)
2,⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
start = 0 while start<3: name = input("请输入用户名:") password = input("请输入密码:") if name == "hello" and password == "666": break else: start=start+1 num=3-start print("用户名或密码输入错误,请重新输入") msg=('你还剩余%d次机会') %(num,) print(msg) print("用户名和密码输入正确")
3, 制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx
name = input('请输入你的名字:') where = input('请输入地点:') hobby = input('请输入你的爱好:') msg = '敬爱可亲的%s,最喜欢在%s干%s' %(name,where,hobby) print(msg)
4,等待⽤户输⼊内容,检测⽤户输⼊内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输⼊”,并允许⽤户重新输⼊并打印。敏
感字符:“⼩粉嫩”、“⼤铁锤。
while True: content=input("请输入内容:") if "⼩粉嫩" or "⼤铁锤" in content: print("存在敏感字符请重新输⼊")