格式化输出:format %s %d
第一种写法:
#name=input(‘name:‘) #age=input(‘age:‘) #job=input(‘job:‘) #info=‘‘‘ #name:%s #age:%s #job:%s #‘‘‘%(name,age,job) #print (info)
#name=input (‘请输入名字:‘) #age=input (‘请输入年龄:‘) #score=input (‘请输入成绩:‘) #mag =‘我叫%s,我今年%s,我成绩是优秀%s‘ % (name,age,score) #print (mag)
第二种写法:
# name=input(‘name:‘) # age=input(‘age:‘) # job=input(‘job:‘) # info=‘‘‘ # name:%(name)s # age:%(age)s # job:%(job)s‘‘‘%({"age":age,"job":job,"name":name}) #红色字体需要注意,因为要正确的输出位置,必须在%中写上所定义的字符串 # print(info)
%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦
#input接收的所有输入默认都是字符串格式!
问题:
1.如何将str转换成字符串呢?
age = int( input("Age:") ) print(type(age))
2.现在有这么行代码
msg = "我是%s,年龄%d,目前学习进度为80%"%(‘金鑫‘,18) print(msg)
报错了,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?
msg = "我是%s,年龄%d,目前学习进度为80%%"%(‘金鑫‘,18) print(msg)
这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。
逻辑运算符:
#优先级
#() > not > and > or
# print(2 > 1 and 3 > 4) # print(2 > 1 or 3 > 4) # print(not 2 > 1)
# a = 2 > 1 and 2 < 3 or 2 > 4 and 1 < 5 or 7 < 4
# print(a)
#1,前后都是比较的条件
# print(3 > 4 or 4 < 3 and 1==1) # F # print(1 < 2 and 3 < 4 or 1>2 ) # T # print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1) # T # print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8) # F # print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # F
#2,前后都是数字
# print(1 or 2) # print(2 or 3) # print(0 or 2) # print(0 or 3) # print(1 and 2) # print(0 and 3)
# x or y if x 为 True,则值是x ;else:值是y.
# and 与or相反
‘‘‘
ps: str ---> int int(str) 字符串必须是数字组成
int----> str str(int)
int ---> bool 非0 ----> True
0 -----> False
‘‘‘
# print(1 or 3 and 4 or 5)
# print(2 > 1 or 1 and 3 < 2)
编码的历史
战争时期:
发电报,发的是高低电频,实际上是01010101今 0000 0001
晚 0000 0101
嗨 0000 0111
去呀 0000 1001
00000001 00000101 00000111 00001001
计算机:
储存文件,或者是传输文件,实际上是010101010
计算机创建初期,美国,二进制,
密码本:
ascii
00000001
01000001 01000010 01000011 ABC
因为全球语言很多,ascii不足以存储这么多对应关系,创建了一个超级密码本:万国码unicode
8 位 == 1个字节.
hello h一个字符,e一个字符,he就不是一个字符.
中国:中是一个字符,国是一个字符.
unicode :
创建之初,16位,2个字节,表示一个字符.
英文: a b c 六个字节 一个英文2个字节
中文 中国 四个字节 一个中文用2个字节
改成 32位,4个字节,表示一个字符.
a 01000001 01000010 01000011 00000001
b 01000001 01000010 01100011 00000001
中 01001001 01000010 01100011 00000001
浪费资源.
对Unicode进行升级: utf-8
utf-8 用最少用8位数,去表示一个字符.
英文: 8位,1个字节表示.
欧洲文字: 16位,两个字节表示一个字符.
中文,亚洲文字: 24位,三个字节表示.
utf-16 用最少用16位数.
gbk:
国标,只能中国人自己用, 一个中文用16位,两个字节表示.
单位转化:
8位bit 8bit == 1bytes
1024bytes == 1kB
1024KB == 1MB
1024MB == 1GB
1024GB == 1TB
in,not in :
判断子元素是否在原字符串(字典,列表,集合)中:
例如:
#print(‘喜欢‘ in ‘我不喜欢看电视‘) #print(‘a‘ in ‘bcvd‘) #print(‘y‘ not in ‘ofkjdslaf‘)