1.在python基础一里面我们讲到过python2x是用的assic编码 而python3x是用的utf-8的编码,编码的由来和一些规则。
Assic码 最开始美国人发明出来 只是能够打印英文字母和一些特殊字符 ,他们用8位来表示一个字符 2**8=256个 也就是用8个编码代码一个字符,也就是一个字节 8位 = 1 byte
Unicode 万国码 这时候的万国码能够表示每个国家的字符 但是这时候用的比较繁琐
初始阶段 :16位 表示一个字符 则 16位=2byte=1个字符
末世阶段: 32位 表示一个字符 32位=4byte=1个字符
这个阶段的编码 很浪费硬盘和内存的空间
Utf-8 对Unicode和assic码的优化 不在那么死板 比较灵活最少用1个字节来表示一个字符
英文 仍然是用8位来表示 1个英文字符=1byte
欧洲国家 用16位2个字节 来表示一个字符
亚洲 中国 用24位 3 个字节 来表示一个字符 所以在储存空间上我们比较浪费
Gbk 国标编码 只包含英文和中文
英文 用8位来表示1个字符
中文 用16位来表示1个 字符 要占用2个字节
转换关系:8bit = 1byte 1024byte = 1kb 1024kb=1MB 1024MB=1GB
2. in/ not in
msg = "iloveyou" print('ilove' in msg)
print('iyou' in msg)
print('iyou' not in msg)
这种输出的结果是bool值 True False True 应用举例:
commet = input('请输入你的评论:')
if "苍井空" in comment:
print("你输入的有敏感字符,请重新输入")
3.while else
i = 0 while True: print(i) if i = 5 : break i=i+1 else: print('输出正常结束')
在这段代码中 遇到了break 后面的else不会执行 只会输出12345
count = 1 flag = True while flag: print(count) if count = 5: flag = False
count +=1 else: print('循环结束')
这短代码会输出 12345 循环结束
5.格式化输出
dic = {'name':'yy','age':'22','work':'it'} meg = '''我的名字是%(name)s,我今年%(age)d,我的工作是% (work)s ''' % dic print(meg)
6.运算符
or and 运算规则:
第一种:全都是比较运算 这种运算规则为()>and>or 同一优先级 从左到右依次计算
第二种:前后都是数值运算 x or y 如果X为True 则返回X 否则返回Y
X and Y 则正好相反 X为True 则返回Y
第三种:混合
bool值 与int的转换 口诀为:非0即True 0位False
print(int(False))= 0 print(int(True))=1
print(bool(234))=True