格式化输出
要理解格式化输出,就要先理解占位符
% 占位符 s 字符串 d 数字
先用占位符占位 再统一按顺序替换
name = input(‘请输入姓名:‘) age = input(‘请输入年龄:‘) job = input(‘请输入工作:‘) hobbie = input(‘请输入爱好:‘) msg = ‘‘‘---------- info of %s ---------- Name : %s Age : %s job : %s Hobbie : %s ---------- end ----------‘‘‘%(name,name,age,job,hobbie) print (msg)
如代码所示 占位符是从上到下 从左到右 依次替换
另外 %%用于单纯的显示一个百分号
初始编码
最初始的编码就是ascii码 ascii码最开始只有七位 预留一位 一共八位
7位可以表示128种可能 完全够英文字母和阿拉伯数字以及标点符号用了
但是对于中国来说,中国的字一共有九万多,这些甚至连常用字都远远无法表达
于是后来又创建了万国码Unicode
unicode是16位表示一个字符,一共有65536种可能性,虽然这些很多了,但是还是无法表示出全部的中国字
于是,后来又改成32位表示一个字符,32位有4294967296种可能,完全可以表示已知的全部的文明的文字.
虽然32位能表示的可能性多,但是问题也随之而来,32位表示一个字符相比起最初的8位表示一个字符
对内存的占用是之前的四倍.
于是utf-8应运而生了,以及相应的utf-16,utf-32,utf-8相比之前的编码有了一个弹性的做法,对于英语这种就采用
八位的编码方式,对汉字这种就采用24位的编码方式,这样毕竟能表现更多的可能性,也不会占用过多的内存.
另外,有一种中国人自己发明的编码方式gbk,一个中文用两个字节,16位去表示,虽然16位只有65536种可能性,
但是还是足够用来表示常用字了.
1bit即一位 8bit=1bytes
1byte 1024byte=1KB
1KB 1024KB=1MB
1MB 1024MB=1GB
1GB 1024GB=1TB
运算符
运算符有很多,我们学的只是一些常用的运算符
+ 加
- 减
* 乘
/ 除
** 幂
// 整除
== 等于
!= 不等于
<> 不等于
and 与
or 或
not 非
3>4 or 4<3 and 1==1 #F 1 < 2 and 3 < 4 or 1>2 #T 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 #T 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #F 1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #F not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #F
在这些逻辑运算中,都遵循着优先级
()>not>and>or
同时
x or y 的判断中 x非零,则返回x,否则返回y
print(1 or 2) print(3 or 2) print(0 or 2) print(0 or -2)
返回结果则是
1
3
2
-2
而and运算符的判断,这是和or运算符完全相反的
print(1 and 2) print(3 and 2) print(0 and 2) print(0 and -2)
返回结果
2
2
0
0
在int→bool的转换中, 非零的转换成布尔值是True,0转换的布尔值是False
True转换的数字就是1
False转换的数字就是0