一 while循环
定义:被称为无限循环
1.while循环结构
while 条件语句:
循环体
条件语句可以一直为真:while True则这个循环为死循环
2.循环代码流程
1.判断条件:条件为真,进入循环体;
2.循环体代码执行到底,返回继续判断条件,周而复始。
3.如何终止循环?
1.改变条件
引入标志位的概念:
flag = True
while flag:
print("xxxxx")
flag = False
练习从1-100打印:
方法1:使用不等式
1 count = 1 #标志位设定为0
2 while count < 101:
3 print(count)
4 count += 1
方法2:利用标志位
1 flag = True
2 count = 1
3 while flag:
4 print(count)
5 count = count + 1
6 if count == 101:
7 flag = False
2.关键字break
作用:直接结束循环,后面循环体内的代码都不会执行。
练习从1+2+....+100利用到break
1 flag = True
2 count = 1
3 num = 0
4 while flag:
5 num = num + count
6 count = count + 1
7 if count == 101:
8 break
9 print(num)
4.跳过本次循环的continue
作用:结束本次循环,继续下次循环。
5.while...else
如果while循环被break打断,则不执行else代码。
6.应用场景
1.验证用户名密码。重新输入这个功能需要while循环。
2.执行次数。
3.无限次的显示页面的场景。
二 格式化输出
1.作用:制作模板,针对某些位置的参数是动态的信息。字符串动态替换等。
2.占位符定义:%,就是动态信息的插入位置,其后跟随s或者d,分别表示字符串类型(str)和数字类型(digital)
3.格式:
1.格式一
msg = "xxxxx%s,xxxx%d,xxx%s"%(msg1,msg2,msg3)
2.格式二
msg = "xxxxx%(msg1)s,xxxx%(msg2)s,xxx%(msg3)s"%{'msg1':xxx,'msg2':xxx,'msg3':xxx}
4.特殊情况
模板内如果只希望单纯的显示通常的%,不希望它表示为占位符。
这时就需要用到%%,第二个%为转译字符。
三 运算符
1.算数运算符
%取余,**幂次,//取整除
2.比较运算符
==等于比较对象是否一样
!= 不等于
3.赋值运算符
+=,-=,*=,/=
4.逻辑运算符(重点)
与(and),或(or),非(not)
1.前后条件为比较运算
例:print(1<2 or 3>1) True
print(1<2 and 3>4) False
注:优先级:() > not > and > or
2.前后两边的条件为数值
x or y if x is True,return x,else return y(记住这一句and与or完全相反)
补充:int <-> bool
0对应的bool值为False,非0都对应为True。
True => 1 False => 0
面试题:
1)print(0 or 3 and 5 or 4)
2)print(1 > 2 or 3 and 4 < 6)
print(2 or 3 and 4 < 6)
针对上述第二种面试题
通过总结我发现类似题目我们把所有的比较运算式得出的结果可以看成1和0而不将其看为True和False,先把他们都当做前后都为数字的情况进行结题,如果最后的答案是由True表示的1,那么我们就返回True,如果是由False表示的0,那么我们就返回False,其余的规则与两边都为数字的运算无异。
3.应用
1.if while等条件判断(数据库,Django orm Q查询)
2.面试
四 编码初识
ASCII码:最初版本的编码规则,包含所有英文,数字,特殊字符。
最初一个字符对应7位,最终优化为8位
面试题:ASCII最左一位都是0
为什么都是0?
因为当时的创造者预留的。
对于ASCII来说:
"hello boy." 10个字符 10个字节。
Unicode:万国码,将全世界所有国家的文字都写入这个编码方式里。
起初:1个字符 16位 2个字节表示
改版:1个字符 32位 4个字节表示
过于浪费资源
UTF-8:最少使用8位表示1个字符
英文:8位 1字节
欧洲文字:16位 2字节
中文:24位 3字节
GBK:国标,只包含中文,英文(英文字母,数字和特殊字符)
英文:1个字节
中文:2个字节
难点:GBK<——>utf-8
补充:所有其余的编码英文字符全部映射于ASCII码。
存储单位
8bit(位) == 1bytes
1024bytes == 1kb
1024kb == 1MB
1024MB == 1GB
1024GB == 1TB
1024TB == 1PB