Python全栈(第一部分)day2
昨日内容回顾
-
编译型:一次性将全部代码编译成二进制文件
代表语言:
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 00001000 -
Unicode 升级 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