2.格式化输出-运算符-编码

格式化输出

在字符串中,用了%s或者%d这种形式,那么后面的%,认为是站位,如果需要用到%,需要写成%%

s=input("你多大了:")
print("哦,你%s岁了"%(s)) #%s 字符串的站位
age=int(s)
print("哦,你%d岁了"%(age))#%d 整数的站位
print("%%在前,%d"%(age))  #在字符串中只要用到%s、%d这些占位符,那么在其中想要使用%本身,就要进行转译:%%

运算符

算术运算 :%(取模) **(幂) //(取商)

a=3 #这个数字可以用input方法自己输入
b=11
print("%d取模%a为:"%(b,a),b%a)
print("%d次幂%a为:"%(b,a),b**a)
print("%d整除%a为:"%(b,a),b//a)

比较运算:== 判断是否相等   !=、<>两个都是判断是否不等于

a="xiaoming"
b="xiaoli"
if a==b:
    print("两者相等")
if a!=b:   #<>看自己的版本是否支持
    print("两者不等")

赋值运算:+=  %=  **=...

a=3
b=11
a+=b  #等价于a=a+b  %=、**=同理
print(a)

逻辑运算

and:和、并且  左右两端必须同时为真(True)结果才能为真

or: 或、或者  左右两端有一个是真,结果就为真

not:取反  是真为假,是假为真

运算顺序:先算的永远是括号  --> not -->and-->or ,同样的运算符从左往右算

print(2>4 or 7<3 and 9>22 or 8<34) #结果为T
#       F    or    F      or   T
#                  F      or   T
print((2>4 or 7<3) and (9>22 or 8<34)) #结果为F

该运算输出: or 如果第一位是非零,输出第一位,如果是领输出第二位(and刚好相反)

#or 如果第一位是非零,输出第一位,如果是零则输出第二位
print(0 or 3)
print(2 or 3)
print(0 and 3)  #and的输出刚好与or相反
print(2 and 3)
print(0 and 3 and 5 and 4 and 7)  #这五行代码输出的都是零
print(3 and 0 and 5 and 4 and 7)
print(3 and 5 and 0 and 4 and 7)
print(3 and 5 and 4 and 0 and 7)
print(3 and 5 and 4 and 7 and 0)
print(1<3 or 8)  #表达式正确 输出的是TRUE

编码

编码相当于密码本,关系到二进制与看懂的字符之间的对应关系。

密码本的发展史

ascii码:只包含英文字母、数字、特殊字符

  0000 0100:(起初是7位,美国设计的,这128种可能足够满足他们的使用需求,之后改为8位,而最左边的位是预留位永远是0)

  对于ascii码,表示一个字符需要用8位代表的一个字节

  ansi (是ascii码空余的位置让各个国家继续编码)之后演变成bgk(国标)

unicode(万国码):就是将是加上所有的文字都汇总在一起,unicode都能够将其表示出来,并与之对应。(编码的根本)

  起初unicode:一个字符用16位表示    Z:0000 0000 0101 1010  (不满足对应需求)

  最终unicode:一个字符用32位表示    Z:0000 0000 0000 0000 0000 0000 0101 1010   (32位占用资源,浪费,引出utf-8)

utf-8:最少用8位去表示一个字符,是对unicode的升级版(广泛使用)

  Z:0101 1010

  欧洲文字:0000 0000 0101 1010

  亚洲文字:0000 0000 0000 0000 0101 1010

gbk:国标,就是适合自己国家的编码

  英文字母:用一个字节表示

  中文:用两个字节表示    

#字符:组成你看到的内容的最小单位就是字符

#位:二进制中占有的位置,就是位

#字节:8位代表一个字节

编码之间的转换(encode()与decode())

str:在内存中存储是使用的unicode的编码格式,而在传输数据的时候是不允许使用unicode的格式的

bytes:就在传输的时候用到,除了存储的格式为utf-8和表现形式,其余的与str类型几乎是一样的

s = 'shuaiqi' #str的表现形式
b1 = b'shuaiqi' #bytes的表现形式
s1 = '帅气' #str的表现形式
b2 = s1.encode('utf-8') #bytes的表现形式会变为b'\xe4\xb8\xad\xe5\x9b\xbd'
s2=b2.decode('utf-8') #s2输出为 帅气

gbk转换成utf-8

  之间可以直接转换(仅限于最初的ascii码所代表的字符)

  要通过unicode间接转换      

#英文的直接转换
s1 = 'shuaiqi'
b1 = s1.encode('gbk')
b2 = b1.decode('utf-8')
print(b2)
#中文的间接转换
s1 = '帅气'
b1 = s1.encode('gbk')
print(b1)
b2 = b1.decode('gbk').encode('utf-8')
print(b2)

计算机存储系统单位换算

位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。[英文缩写:b(固定小写)]

字节byte:8个二进制位为一个字节(B),最常用的单位。

1 Byte(B) = 8 bit

1 Kilo Byte(KB) = 1024B

1 Mega Byte(MB) = 1024 KB

1 Giga Byte (GB)= 1024 MB

1 Tera Byte(TB)= 1024 GB

1 Peta Byte(PB) = 1024 TB

1 Exa Byte(EB) = 1024 PB

1 Zetta Byte(ZB) = 1024 EB

1Yotta Byte(YB)= 1024 ZB

1 Bronto Byte(BB) = 1024 YB

1Nona Byte(NB)=1024 BB

1 Dogga Byte(DB)=1024 NB

1 Corydon Byte(CB)=1024DB

有什么不对的地方,欢迎指正。

猜你喜欢

转载自www.cnblogs.com/zx-ky/p/10843784.html