第二章python入门
2.1 环境的安装
解释器:py2、py3
开发工具:pycharm
2.2编码
2.2.1编码基础
初识编码
ASCII码 :英文 8位表示一个东西 2**8 ,8位等于一个字节
Unicode:(分ecs2 ,ecs4) 32位表示一个东西 2**32 ,32位等于4字节
Utf-8:对Unicode进行压缩,尽量用少的位数去表示一个东西,以8个位为一个单位(Utf-8中最少用1字节=8位,最多用4字节=32位表示,中文:3字节=24位表示)
gb2312:中文用2字节
gbk:中文用2字节
单位
8bit =1byte
1024byte = 1kb
1024kb = 1mb
1024mb = 1gb
1024gb = 1tb
1024tb = 1pb
编码和解码要一致
python2 有中文的不能运行,python2默认用的是ASCII码;python3可以运行有中文的,python3用utf-8
编写文件时,保存文件要用utf-8格式,以什么编码保存,就要用什么编码方式打开,否则出现乱码
2.2.2python编码相关
对于python默认解释器编码:
1.py2:ASCII,在文件的头部加:#--coding:utf-8 --
2. py3:utf-8
注意:对于操作文件时,要按照以什么编码写入的就要按照什么编码打开,否则出现乱码
py2:输入:raw_input;输出:print""
2.3.1命名规范
1.变量名只能包含:字母/数字/下划线,不能用数字开头
2.不能用数字开头
3.不能是python的关键字
4.命名建议:见名知意:name = “alex” age= 18
用下划线连接:Alex_dad = “xxx”
驼峰式命名:Alexdad = “xxx”
2.3.2变量的意义
为某个值创建一个名称,以后在使用时通过此名称就可以直接调用
Content = “钓鱼要钓刀鱼,刀鱼要到岛上钓” Print(content) name = "123" print(name)
描述 | 示例 | |
---|---|---|
= | 将右侧操作数的值分配给左侧操作数 | c=a+b表示将a+b的值分配给c |
+= | 将右侧操作数相加到左操作数,并将结果分配给左操作数 | c += a等价于c=c+a |
-= | 将左侧操作数减右操作数,并将结果分配给左操作数 | c -= a等价于c = c -a |
*= | 将右侧操作数与左操作数相乘,并将结果分配给左操作数 | c * = a等价于c =c * a |
/= | 将左侧操作数除以右侧操作数(求商),并将结果分配给左侧操作数 | c /= a等价于c = c / a |
%= | 将左侧操作数除以右侧操作数的余数分配给左侧操作数 | c %=a等价于c=c%a |
**= | 执行指数(幂)计算,分配给左侧操作数 | c=a等价于c=c**a |
//= | 运算符执行地板除运算(除法时余数取整),并将值分配给左操作数 | c//=a等价于c=c//a |
in | 判断“中国”是否在value所代指的字符串中,中国是否是value所代指的字符串子序列 |
2.4.2比较运算符
描述 | 实例 | |
---|---|---|
== | 等于-比较对象是否相等 | a==b返回false |
!= | 不等于-比较两个对象是否不相等 | a!=b返回true |
<> | 不等于-比较两个对象是否不相等 | a<>b返回true,这个运算符类似!= |
> | 大于-返回x是否大于y | a>b返回true |
< | 小于-返回x是否小于y | a<b返回false |
>= | 大于等于-返回x是否大于等于y | a>=b返回true |
<= | 小于等于-返回x是否小于等于y |
注意:python中不支持<>
2.5赋值运算
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a +b 将a+b的运算结果赋值给c |
+= | 加法赋值运算符 | c+=a等效于c=c+a |
-+ | 减法赋值运算符 | c -=a等效于c=c-a |
*= | 乘法赋值运算符 | c * =a等效于c=c*a |
/= | 除法赋值运算符 | c/=a等效于c = c /a |
%= | 取模赋值运算符 | c %=a等效于c=c%a |
**= | 幂赋值运算符 | c ** =a等效于c=c ** a |
//= | 取整除赋值运算符 |
描述 | 实例 | |
---|---|---|
in | 如果在指定的序列中找到值返回true,否则返回false | x在y序列中,如果x在y序列中返回true |
not in | 如果在指定的序列中没有找到值返回true,否则返回false | x不在y序列中,如果x不在y序列中返回true |
描述 | 实例 | |
---|---|---|
and | 布尔'与'-如果x为false,x and y有返回false,否则返回y的计算值 | a and b返回true |
or | 布尔'或'-如果x为true,它返回true,反正它返回y的计算值 | a or b返回true |
not | 布尔'非'-如果x为true,返回false,如果x为false,他返回true |
逻辑运算 and or not 注意:优先级()>not>and>or,同一级从左到右计算 大于等于小于在not之前 not 2 > 1 #正确 not 2 >1 #错误 需要记的是字符串转数字 # 数字转字符串 # ""/0 转换布尔值false
2.6.1 or
value = 1 or 9 第一个值如果是转换成布尔值如果是真的,则value = 第一个值 第一个值如果转换成布尔值如果是假的,则value = 第二个值 如果有多个or条件,则从左到右依次进行计算 v1= 0 or 1 v2 = 8 or 10 v3 = 0 or 9 or 8 ''' ''' value = 0 or 9 print(value) value = 0 or " " print('--->',value,'<---') value = 0 or 9 or 8 #从左到右计算 print(value) '''
2.6.2 and
#对于and #如果第一个值转换成布尔值是true,则value= 后面的值 #如果第一个值转换成布尔值是false,则value= 第一个值 #多个and条件,从左到右依次执行上述流程 v1= 1 and 9 print(v1) #9 v2= 1 and 0 print(v2) #0 v3= 0 and 7 print(v3) #0 v4= 0 and " " print(v4)#0 v5= 1 and 0 and 9 print(v5) #0
2.6.3 计算顺序
#综合 先看and在看or v1 = 1 and 9 or 0 and 6 print(v1) # 一般情况下 ''' if 1>0 and 1>2: print('666') #二班情况 ##小知识:int str bool #数字转字符串 v1= 666 v2 = str(v1) #字符串转数字 v1 = '666' v2 = int(v1) value v1 = 1 v2 = bool(v2) print (v2) #数字转bool值,除了0是false以外 其他的都是true v1 = 'alex' v2 = bool(v1) print (v2) #字符串转布尔值,空字符串是false,其他的都是true #布尔值转换其他 v1 = True v2 = int(v1) print (v2) #当转换成整形是false时是0,true是1,当转换成字符串时true就是true,false就是false
2.6.4 例题
6 or 2 > 1 #6 or true 6 3 or 2 > 1# 3 or true 3 0 or 5 < 4# 0 or False False 5 < 4 or 3# 3 2 > 1 or 6# True 3 and 2 > 1# true 0 and 3 > 1# 0 2 > 1 and 3# 3 3 > 1 and 0# 0 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 # # true and 2 or false and 3 and 4 or true # 2 or false and 4 or true # 2 or false or true # 2 ''' print(3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2)
#通过循环,让count每次循环+1 count = 1 while True: print(count) count = count +1
2.7.1 关键字:break(终止当前的循环)
关键字: break(终止当前的循环) """ while True: print(666) break print('结束') #通过break实现1-10 count = 1 while True: print(count) if count ==10: break count = count +1 print('结束') while True: print('你好') while True: print(666) break #终止当前循环
2.7.2 关键字:continue 本次循环如果遇到continue,则不继续往下走,而是回到判断位置
关键字:continue 本次循环如果遇到continue,则不继续往下走,而是回到判断位置 #打印123456 89 ''' count = 1 while count<=10: if count ==7: count = count + 1 continue print(count) count = count +1
#while else 语句 count = 1 while True : print(count) if count ==10: break count = count +1 else: #不在满足while后的条件时,触发,或条件=false print('else代码块') print('结束')
message = """欢迎致电10086 1、话费查询; 2、流量服务; 3、业务办理; 4、人工服务""" print(message) index = input("请输入你要选择的业务:") index = int(index) if index ==1: print("话费查询") elif index ==2: print("流量服务") elif index ==3: content = """业务办理 1、修改密码; 2、更改套餐; 3、停机""" print(content) value = input("请输入要办理的业务:") value = int(value) if value == 1: print("修改密码") elif value == 2: print("更改套餐") elif value == 3: print("停机") else : print("错误") elif index ==3: print("人工服务") else: print("输入错误")