今日内容概要
今日内容详细
python3只有一个input(),并且都转成字符串类型
python2有两个获取用户输入的方式
1.input()输入的数据必须自己加上数据的特征,输啥就是啥
name = input('name>>>:') name>>>:123 >>> type(name) <type 'int'>
还能够识别一些简单的代码(了解即可)
2.raw_input() 等价于python3里面的input,接收的数据都会转成字符串
python3只有print()一种用法
python2有两种用法 print print()
and 与
or 或
not 非
上述三个运算符都是用来配合条件一起使用
and链接的多个条件必须都成立结果才成立(True),两个为真才为真
or链接的多个条件有一个成立结果就成立(True),两个为假才为假
not将条件取反(原本是对的就变成错的,如果是错的多就变成对的),真变假,假变真
1.and
1 == 1 and 2 > 10 and 3 != 6 and true and 10 < 2
如果所有的连接符号都是and,那么判断的时候非常简单,只要有一个不符合,后面都不需要再看,结果肯定不成立
举例 print(2>0 and 5>0) print(2>0 and 5<0) print(2<0 and 5>0) print(2<0 and 5<0) 终端输出 True False False False
记忆口诀:两个为真才为真
2.or
1 != 1 or 2==2 or false or 3 < 2 or 10 < 1
如果所有的连接符号都是or,那么判断的时候非常简单,只要有一个符合,后面也不用看了,结果肯定成立
举例 print(2>0 or 5>0) print(2>0 or 5<0) print(2<0 or 5>0) print(2<0 or 5<0) 终端输出 True True True False
记忆口诀:两个为假才为假
3.not
举例 print(not True) print(not False) 终端输出 False True
记忆口诀:真变假,假变真
三者如果混合使用,其实是有优先级的!
3>4 and 4>3 or 1==3 and 'x' == 'x' or 3 >3 # 不合理的编写方式
如果要三者混合使用,那么应该加上括号来区别优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3) # 合理
in 在什么什么之内
not in 不在什么什么之内
l1 = ['jason', 'kevin', 'tony', 'oscar', 'jerry'] # 判断某个人名在不在班级学生名单中(判断某个个体在不在某个群体内) print('jason' in l1) # True print('ja' in l1) # False print('jason kevin' in l1) # False '''列表在做成员运算的时候最小单位是数据值整体 不能再拆分也不能合并''' s1 = 'hello big baby!' print('h' in s1) # True print('he' in s1) # True print('hell' in s1) # True print('hello' in s1) # True '''字符串在做成员运算的时候最小单位是单个字符 也可以增加字符个数''' d1 = {'name': 'jason', 'pwd': 123} print('jason' in d1) # False print(123 in d1) # False print('name' in d1) # True print('pwd' in d1) # True '''字典在做成员运算的时候只有K会参与运算 V默认不暴露给外界'''
not in是in的逆运算,其使用语法与in类似,只是结果相反
is 判断数据值的内存地址是否一致
== 判断数据值得值是否一致,地址无所谓
id() 该方法会返回一串数字,相当于内存地址
l1 = [11, 22, 33, 44] l2 = [11, 22, 33, 44] print(id(l1)) # 2768135836544 print(id(l2)) # 2768135831424 print(l1 == l2) # True 只判断值 print(l1 is l2) # False 判断内存地址
值相等 内存地址可能不等
内存地址相等 值肯定相等(单次程序中)
# l1 = 10 # l2 = 10 # print(id(l1)) # 140707857893312 # print(id(l2)) # 140707857893312 """python针对数据量比较小的并且经常使用的数据会做内存优化:小整数池""" l1 = 9999999 l2 = 9999999 print(id(l1), id(l2)) # 1271940823728 1271940823728 """有时候IDE编辑工具也会做更多的优化处理(上述代码使用解释器直接运行 地址不一样)"""
流程控制的概念
本质就是事物的执行流程,事物的执行流程总共就三种
1.顺序结构:就是让程序按照从头到尾的顺序依次执行每一条 Python 代码,不重复执行任何代码,也不跳过任何代码
2.分支结构:就是让程序“拐弯”,有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码
3.循环结构:就是让程序“杀个回马枪”,不断地重复执行同一段代码
1.python中使用代码的缩进来表示代码的从属关系,缩进的代码是否运行取决于上面没有缩进的父代码(结尾有冒号)
2.缩进量其实没有要求,只要缩进了即可,但是为了美观一般推荐使用四个空格
3.并不是所有的代码都可以拥有子代码
if关键字 else关键字 elif关键字 (elif else不能单独使用)
4.同属于一个父代码的多行子代码应该保证相同的缩进量,如果代码缩进了,那就必须往上找一个缩进量比它小的代码作为父代码,这个父代码如果可以拥有子代码,那么没有问题,不可以则直接报错
5.相同缩进量的代码彼此之间没有主次之分,都是按照顺序依次执行
在python中如果想要编写分支结构,那么需要使用关键字if
if条件:条件成立执行执行的代码(子代码)
条件可以是布尔值,也可以是表达式
判断的条件可以是一个,也可以是由逻辑运算符连接的多个
1.定义女人的年龄 age = 28 2.判断女人的年龄 if age < 30: print('小姐姐你好呀!!!')
if条件:条件成立之后执行的子代码
else:条件不成立执行的子代码
判断的条件可以是一个,也可以是由逻辑运算符连接的多个
1.获取用户名和密码 name = input('name>>>:') pwd = input('pwd>>>:') 2.判断用户名和密码是否正确(目前只能写死) # if name == 'jason' and pwd == 123: # 这样错误 if name == 'jason' and pwd == '123': # python中不同数据类型之间无法直接做比较 print('贵宾一位') else: print('没钱滚蛋')
if 条件1:
条件1成立执行的子代码
elif 条件2:
条件1不成立,条件2成立执行的子代码
elif 条件3:
条件1和2都不成立,条件3成立执行的子代码
else:
上述所有的条件都不成立执行的子代码
score = int(input('请输入学生的成绩:')) #input获取的都是字符串,做类型转换 if score/100 >= 90: print('好学生') elif score/100 >=80: print('中等生') elif score/100 >=60: print('中下等学生') else: print('差学生')
在大街上看到一个漂亮的背影 上去要微信 如果要微信成功了 则邀请她去看电影(她可能拒绝 也可能接受) 如果接受了则继续吃饭 逛街 等待天黑!!! 1.先定义出各种条件 is_wechat = True is_movie = True is_agree = False is_xxx = True 2.条件判断 if is_wechat: print('要微信成功了') if is_movie: print('要去看电影了 找个后排座位 视野好') if is_agree and True: print('吃饭 逛街 天黑了!!!') else: print('你个臭流氓!!!') else: print('看电影多无聊!!!') else: print('你个癞蛤蟆!!!')