昨日内容回顾
编译型:一次性将全部代码编译成二进制文件
代表语言: C,C++优点:执行效率高
缺点:开发速度慢,不能跨平台
解释型:当程序运行时,从上至下一行一行的解释成二进制
优点:开发速度快,效率高,可以跨平台
缺点:运行效率低
python2x 和 python3x 区别:
宏观上:python2x源码,重复率高,不规范,python 崇尚简单,优美,创建了python3,规范化
默认编码:在python2首行添加:#-*-encoding:utf-8-*-,解决中文报错问题
变量:
- 由数字,字母,下划线任意组合,且不能以数字开头
具有可描述性
- 不能用python中的关键字
不能用中文
常量
约定俗成,不可更改,全部是大写字母注释
单行注释用#
多行注释用''' '''/ """ """
用户交互
input,数据类型全部是str数据类型
int: + - / * % **
- str: 加引号的就是str, 可以相加,可以与数字相乘
bool: True, False
if语句
if 条件: 结果 if 条件: 结果 else: 结果 if 条件: 结果 elif 条件: 结果 elif 条件: 结果 else: 结果 if 条件: if 条件:结果 if... else:结果
while语句
while 条件: 结果
终止循环
- 改变条件
- break
- continue: 结束本次循环,继续下一次循环
作业讲解
while循环输入1,2,3,4,5,6,8,9,10
count = 1 while(count<=10): count += 1 if(count==7): print(' ') else: print(count)
输出1-100内所有奇数
count = 1 while count<=100 : if count%2==1 : print(count) count += 1
输出1-100内所有偶数
count = 1 while count<=100: if count%2==0: print(count) count += 1
求1-2+3-4+...+99的值
count = 1 sum = 0 while count<100: if count%2==1: sum = sum + count else: sum = sum - count count += 1 print('1-2+3...+99='+str(sum))
用户登陆(三次机会尝试)
count = 1 while True: if count>3: print('已错误登陆3次') break count += 1 name = input('请输入用户名:') passwd = input('请输入密码:') if name == 'xkzhai' and passwd == '1234': print('登陆成功') break else: print('用户名或密码错误,请重新输入!') continue
格式化输出
%占位符,s字符串,d数字
%% 单纯地显示百分号'''用户交互,格式化输出''' name = input('请输入姓名:') age = input('请输入年龄:') msg = 'My name is %s, I am %s years old' %(name,age) print(msg) '''%d接受数据''' name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入工作:') hobbie = input('你的爱好:') msg = '''------------ info of %s ----------- Name : %s Age : %d job : %s Hobbie: %s ------------- end -----------------''' %(name,name,int(age),job,hobbie) print(msg) '''单纯显示百分号,转义''' name = input('请输入姓名:') age = input('请输入年龄:') msg = "我叫%s,今年%s 学习进度为3%%s" %(name,age) print(msg)
while else
当while循环被break打断,就不会执行else结果
count = 0 while count <= 5: count += 1 if count ==3:brerak print("Loop",count) else: print("循环正常执行结束") print("-----out of while loop ----")
编码初始
电报,电脑的传输,存储都是01010101
0000110 晚
1010100 上 0010100 喝 0010111 点 0000001 儿000010 1010100 0010100 0010111 0000001
最早的'密码本'
ascii
涵盖了英文字母大小写,特殊字符,数字。 01000001 A 01000010 B 01000011 C ascii 只能表示256种可能,太少存储单位换算
1bit 8bit = 1bytes 1byte 1024byte = 1KB 1KB 1024kb = 1MB 1MB 1024MB = 1GB 1GB 1024GB = 1TB万国码 unicode
起初:
1个字节可以表示所有的英文,特殊字符,数字等等 2个字节,16位表示一个中文,不够,unicode一个中文用4个字节,32位 你 00000000 00000000 00000000 00001000Unicode 升级 utf-8 utf-16 utf-32
utf-8 一个字符最少用8位去表示: 1). 英文用8位 一个字节 2). 欧洲文字用16位去表示 两个字节 3). 中文用24位去表示 三个字节 utf-16 一个字符最少用16位去表示
gbk
中国人自己发明的,一个中文用两个字节,16位表示。
运算符
数学运算符
- + 加
- - 减
- * 乘
- / 除
- // 整除
- ** 幂
- 逻辑运算符
- and
- or
- not
优先级:() > not > and > or
print(3>4 or 4<3 and 1==1) # F print(1 < 2 and 3 < 4 or 1>2) # T print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1) # T print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8) # F print(1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # F print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # F
int --> bool
#非零数转成True,零转成False print(bool(2)) # True print(bool(0)) # False print(bool(-1)) # True
bool --> int
#True转成1,False转成0 print(int(True)) # 1 print(int(False)) # 0
数字逻辑运算
'''x or y, x为True,则返回x,否则返回y''' print(1 or 2) # 1 print(3 or 1) # 3 print(0 or 2) # 2 print(0 or 100) # 100 print(2 or 100 or 3 or 4) # 2 '''x and y,与or正好相反''' print(1 and 2) # 2 print(0 and 2) # 0 '''混合运算''' print(0 or 4 and 3 or 2) # 3
数字布尔混合逻辑运算
print(2 or 1<3) # 2 print(3>1 or 2 and 2) # True print(1>2 and 3 or 4 and 3<2) #False