Python基础 之 变量、用户交互、if条件语句、while循环语句、编码、逻辑运算
一、Python介绍
Python 崇尚优美、清晰、简单
Python是一门动态解释型的强制性定义的语言。
二、编译型和解释型的区别
- 编译型:一次性将所有与程序编译成二进制文件。
- 缺点:开发效率低,不能跨平台。
- 优点:运行速度快。
- 比如:C、C++等。
- 解释型:当程序执行时,一行一行地解释。
- 优点:开发效率高,可以跨平台。
- 缺点:运行速度慢。
- 比如:Python、Php等。
三、变量
1、定义:将一些运算的中间结果暂存到内存中,以便后期使用。
2、命名规范:1)必须由数字、字母、下划线任意组合,但不能与数字开头;
2)不能是python中的关键字;
3)变量具有可描述性;
4)不能是中文。
3、python中的关键字:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
4、命名方式:
1)驼峰式(单词首字母大写)
2)下划线(字母小写)
四、常量
定义:一直不变的量。
常量名:全部大写。
例如:BIR_OF_CHINA=1949
五、注释
注释:方便自己和他人理解代码。
单行注释:#
多行注释:三引号之间(单引号或双引号都行)。
例如:'''被注释内容''' 或 """被注释内容"""。
六、基础数据类型初始
数字:Int (整型)
例:23,34,67
加:+ 减:- 乘:* 除:/ 取余:%
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
字符串:Str
在Python中,凡是在引号里面的,都是字符串,单双引号都可以。但是,多行字符串必须用多引号。
例如:
msg = ''' 今天我想写首小诗, 歌颂我的同桌, 你看他那乌黑的短发, 好像一只炸毛鸡。 ''' print(msg)
可相加:字符串中的拼接;
注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接
可相乘:str*int
字符串转化为数字:int(str)条件:str必须是数字组成的
数字转化为字符串:str(int)
布尔值:bool
只有两种结果:True 或False
七、用户交互
1、等待输入
2、将你输入的内容赋值给前面变量
3、input出来的数据全部是字符串型
例如:打印姓名
name=input("请输入你的名字:") print(name)
八、IF条件语句
第一种:
if 条件:
结果
例如:
if 5>4 print(666)
第二种:
if 条件:
结果
else 条件:
结果
例如:
if 5>4 print(666) else: print(999)
第三种:
if 条件:
结果
elif 条件:
结果
else 条件:
结果
例如:
num=input("请输入你想要猜的数字:") if num==1: print("一起吃饭") elif num==2: print("一起逛街") elif num==3: print("一起旅游") else: print("哪都不去")
第四种:嵌套
例如:
name=input("请输入你猜的名字:") age=input("请输入你猜的年龄:") if name=="GY": if age=="22": print("猜对了") else: print("年龄错了") else: print("猜错了,真笨")
九、While循环语句
第一种:
while 条件:
循环体
无限循环
终止循环的方法:
1、改变条件,使其不成立;
2、break;
例如:1、输出1-100之间所有的数。
count=1 while count<=100: print(count) count=count+1
2、输出1-100之间所有的奇数。
count=0 while count < 100: count=count+1 if count%2==1: print(count)
3、使用while循环输入1 2 3 4 5 6 8 9 10。
count=0 while count <10: count=count+1 if count==7: continue print(count)
4、用户登陆(登陆次数不能超过三次)
time=0 while time<3: username=input("请输入用户名:") password=input("请输入密码:") if username=="22" and password=="1004": print("登陆成功!") break else: print("用户名或密码不正确,请重新输入!") time=time+1
第二种:while...else...
当while循环被break打断,不执行else的结果;反之,则执行else.
例如:(不被break打断,执行else语句)
count = 0 while count <= 5 : count += 1 print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
输出结果:
Loop 1 Loop 2 Loop 3 Loop 4 Loop 5 Loop 6 循环正常执行完啦 -----out of while loop ------
反之:(被break打断,则不执行else语句)
count = 0 while count <= 5 : count += 1 if count == 3:break print("Loop",count) else: print("循环正常执行完啦") print("-----out of while loop ------")
输出结果:
Loop 1 Loop 2 -----out of while loop ------
十、格式化输出 format
按顺序输出
% 占位符 s 字符串 d:digit 数字
%% 只是单纯地输出%
例:3%% 则输出3%
例如:打印名片
name=input("请输入姓名:") age=input("请输入年龄:") job=input("请输入职业:") hobby=input("请输入爱好:") mag='''-----info of %s----- Name: %s Age: %d Job: %s Hobby: %s ------------end------------''' % (name,name,int(age),job,hobby) print(mag)
十一、初始字符集
电脑 电报的输出,存储是010101010
最早的“密码本”ascii,涵盖了英文字母大小写,特殊字符,数字,只能表示256种可能性,太少
后来创办了万国码unicode。 16位表示一个字符 32位表示一个字符
unicode升级utf-8、utf-16、utf-32
8位=1字节
utf-8 一个字符最少用8位去表示,英文用8位(1字节),欧洲文字用16位去表示(2字节),中文用24位去表示(3字节)
utf-16 一个字符最少用16位去表示
gbk 中国人自己发明的,一个中文用2个字节,英文用一个字节
1bit:一位 8位=1字节 1bytes:一个字节
bit、bytes、Kb、Mb、Gb、Tb的关系:
1Bit: 8bit=1Byte 1Byte 1024Bytes=1Kb 1Kb 1024Kb=1Mb 1Mb 1024Mb=1Gb 1Gb 1024Gb=1Tb
十二、逻辑运算
and or not
优先级:()>not>and>or
X and Y X为真时,返回Y
X or Y X为非零(真)时,返回X
int------>bool 非零转化为bool,则为True;0转化为bool,则为False.
bool---->int 只有两个值,真为1,假为0.
例如:
1、判断下列逻辑语句的True,False.
1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2、求出下列逻辑语句的值。
1)8 or 3 and 4 or 2 and 0 or 9 and 7 2)5 and 9 or 10 and 2 or 3 and 5 or 4 or 5
3、计算结果
1)6 or 2 > 1 2)0 or 5 < 4 3)3 and 2 > 1 4)3 > 1 and 0 5)3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
十三、小知识点总结
1、=、==、is、id分别是?
= 赋值 ==比较值 is比较内存地址 id(内容) 打印id是多少
2、数字、字符串
数字的范围:-5------256
字符串:1)、不能含有特殊字符
2)、s*20是同一个字符,s*21级以后都是两个地址
数字和字符串在以上范围内为了节省空间,存入了同一个内存地址,也就是小数据池。
注意:其他数据类型是没有小数据池,例如:list、dict、tuple、set.
3、编码:ascii、unicode、utf-8、gbk
1)、各个编码之间的二进制,是不能互相识别的,会产生乱码。
2)、文件的存储、传输,不能是unicode,(存储空间太大)(只能是utf-8、utf-16、gbk、gb2312、ascii等)
Python3大环境
str在内存中是用unicode编码存储的。
bytes类型是以utf-8、gbk、gb2312、ascii存储的。
对于英文:
str:表现形式:s="alex"
编码方式:010101010 unicode
bytes:表现形式:s=b"alex"
编码方式:000101010 utf-8、gbk、gb2312、ascii
对于中文:
str:表现形式:s="alex"
编码方式:0101010101 unicode
bytes:表现形式:s=b'x\e91\e91\e01\e21\e31\e32
编码方式:000101010 utf-8、gbk、gb2312、ascii
encode编码 如何将str转化为bytes
内部编码:unicode------>gbk/utf-8
英文
s1="alex" s11=s1.encode("utf-8") s11=s1.encode("gbk") print(s11) #结果:b'alex'
中文
s2="中国" s22=s2.encode("utf-8") #6字节 s22=s2.encode("gbk") #4字节 print(s22) #结果:b'\xd6\xd0\xb9\xfa'