python格式化输出和运算符以及编码的初识

格式化输出

当你遇到这样的需求:字符串中想让某些位置变成动态可传入的,首先要考虑到格式化输出。
我们先看下如下一个个人信息

msg='''-----message----
Name : ssss
Age : 18
job : tea
hobbie : sai
----end----
'''

根据如上信息,制作一个公共的模版
我们需要让一个字符串的某些位置变成动态可传入的,我们先用%占住这个位置,这就是%占位符,s->str

name = input('请输入你的姓名')
age = input('请输入你的年龄')
job = input('请输入你的工作')
hobbie = input('请输入你的爱好')
msg='''-----message of %s----
Name : %s
Age : %s
job : %s
hobbie : %s
----end----
'''%(name,name,age,job,hobbie)
print(msg)

但是我们要注意一点,你只要用格式化输出,就会把你所有的百分号当成占位符,如下就会报错,因为1%中的%被当成了占位符,后面没有跟类型s

msg='我叫%s,今年%s,学习进度1%' %('aasdf',18)

在格式化输出中如果你只想表示一个百分号,而不是作为占位符使用,你要在%前面再加一个%做转义,就是1%%

运算符

算数运算符:加减乘除,%取余,两个乘号就是幂的运算,//取整除。
比较运算符:>,==,!= <>,<,>=,<=
赋值运算符:=,+=,-=,*=,%=,**=,//=
逻辑运算符:and,or,not
在没有括号的情况下,优先级:not>and>or,同一优先级,从左至右依次计算
情况一:两边都是比较运算

print(2>1 and 3<4 or 4>5 and 2<1)
print(True or False)

情况二:两边都是整数
x or y,x为真,值就是x,x为假,值就是y
x and y,x为真,值是y,x为假,值是x

print(1 or 2)
print(3 or 2)
print(4 or 2)
print(-1 or 2)
print(0 or 2)

数字和布尔值之间的转换

i=100
print(bool(i))
i=0
print(bool(i))发现是False,也就是,非零既是True

布尔值如何转换成数字

print(int(True))1
print(int(False))0

编码的初识

计算机存储文件,存储数据,以及将一些数据或者信息通过网络发送出去,比如借助qq发文件,它真正交换的是什么,它的底层都是01010101。
假如我带你穿越过去,要研究电报:
电报有个密码本:
  滴滴    走
  滴滴滴  进攻

滴就是1,空就是0,假如密码本对应如下
101 今
1101 晚
1 吃
11 鸡
但是他给我发电报只能发1011101111,我该怎么读呢
所以要进行一个规定,比如,7位
0000101 今
0001101 晚
0000001 吃
0000011 鸡
0000101000110100000010000011

所以密码本承载的就是0101二进制与文字之间的对应关系

ASCII码就是最早期的密码本,是美国发明的,只考虑他们自己用,所以
ASCII码:只包含英文字母,数字,特殊字符。
早期可能是
000 0001:a
000 1111:b
但是这7位只够美国用,128刚好够用,怕别的地方再用就预留了一位,所以最左边全都是0,共8位,8bit=1byte
‘hello123’:8byte

那么后来,各国都用了计算机,这个早期的密码本不够用了,各国就有了自己的密码本
中国的就是gbk,gbk是国标(国家标准),包含英文字母,数字,特殊字符和中文
一个英文字母:0000 0001:1(一个字节)
一个中文:0000 0001 0100 0001:中(占2个字节)

后来国际上为了统一,出现了Unicode:万国码:把世界上所有的文字都记录到这个密码本。
起初,一个字符用2个字节表示,比如一个a是0000 0001 0000 1100,一个中是0001 0000 0010 0001
后来为了涵盖全部名字,一个字符占4个字节
0000 0000 0000 0000 0000 0000 0000 0001
现在全世界所有的文字,加起来,超不过2的21次方,一个字符占4个字节共2的32次方,确实能表示完,但是很浪费空间,浪费资源

所以,对Unicode升级,变成了UTF-8
UTF-8:最少用8bit(1个字节)表示一个字符
0000 0011:a
0000 0011 0000 0001:欧洲2个字节
0000 0000 0001 0001 0000 0111 中国三个字节

‘中国12he’:这个字符串用gbk去编译,占几个字节
一个中文占2个字节,字母数字占1个字节,共8个
如果是用UTF-8,共用了10个字节
用什么编码,占用的字节数不同,这是重点

8bit = 1byte
1024byte=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
1024TB=1PB
1024PB=1EB
1024EB=1ZB
1024ZB=1YB
1024YB=1NB
1024NB=1DB

7.6MB–>7.610241024*8 bit

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值