一、格式化输出:占位符
编写代码,输出以下内容:会发现,用字符拼接的方式还难实现这种格式的输出,需要把要打印的格式先准备好
由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系
example= ''' - - - - - - - THE Author is %s - - - - - NAME : %s Age : %d Sex : %s Hobby: %s - - - - - - THE END- - - - - - - - - - '''%('jerd','Jockfi',int('20'),'gentleman','basketball') print(example)
#这里的每个%s就是一个占位符,代表后面括号里的jerd %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('请输入你的成绩:') msg = '我叫%(name)s,今年%(age)s岁,成绩为%(score)s分' %{'age':age1,'name':name1,'score':score1} print(msg)
问题:现在有这么行代码
msg = "我是%s,年龄%d,目前学习进度为80%"%('金鑫',18) print(msg)
这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?
%%代表一个"%"符号
msg='我是%s,我的年龄是:%d,目前学习进度为80%%'%('jerd',20) print(msg) msg='我是%s,我的年龄是:%d,目前学习进度为%d%%'%('jerd',20,80) print(msg)
二、类型转换和查看数据类型
把字符型变为整型 int(str) 整型变字符型 str(int)
number='12' count=1 str(count) print(number,type(number),type(int(number))) print(count,type(count),type(str(count)))
整型,字符型-->bool型 a=-2 b=bool(a) print(b,bool(1),bool(0),bool(""),bool(" ")) #字符型,bool值 -->int型 a=int('1') #必须为数字 b=int(3>2) print(a,b) #bool值,int型-->str型 b=str(3>2) a=str(1) print(a,type(a),b,type(b))
三、编码:
1.计算机:
储存文件,或者是传输文件,实际上是010101010
计算机创建初期,美国,二进制,
密码本:
ascii
00000001
01000001 01000010 01000011 ABC
2.ASCII码的历史
ASCII是英文大小写字母,数字,标点符号的参照表。由8位字节表示一个字符。ASCII最左边的一位是始终是0,
不会改变。这一位是设计者预留的。
为什么预留:英文的字母,数字,标点符号,用7位字节就能全部表示出来,设计者为了ASCII码以后的发展,就预留了一位
3.unicode
因为全球语言很多,ascii不足以存储这么多对应关系,创建了一个超级密码本:万国码unicode
8 位 == 1个字节.
hello h一个字符,e一个字符,he就不是一个字符.
中国:中是一个字符,国是一个字符.
1.unicode :
创建之初,16位,2个字节,表示一个字符.
英文: a b c 六个字节 一个英文2个字节
中文 中国 四个字节 一个中文用2个字节
改成 32位,4个字节,表示一个字符.
a 01000001 01000010 01000011 00000001
b 01000001 01000010 01100011 00000001
中 01001001 01000010 01100011 00000001
浪费资源.
2.对Unicode进行升级: utf-8
utf-8 用最少用8位数,去表示一个字符.
英文: 8位,1个字节表示.
欧洲文字: 16位,两个字节表示一个字符.
中文,亚洲文字: 24位,三个字节表示.
utf-16 用最少用16位数.
3.gbk:
国标,只能中国人自己用, 一个中文用16位,两个字节表示.