昨日内容大概
数据类型(剩下5个)
数据类型之列表
(list)
用中括号
,中括号能够存储多个数据,方便数据值的获取,且数据间用逗号隔开,数据值为任意的数据类型。
索引取值
:通常情况下是从0开始数,生活中我们是以1开始数。
索引超出范围会报错。因为在取索引的时候列表里面没有元素了或者不够,那这样自然取不出来了,会报告说超出界限。
数据类型之字典
(dict)
用大括号
,大括号内能够存储多个数据,数据值的表现形式是K:V键值对。
K是对V数据具有描述性性质的信息。
V是具体真实的数据值信息,V可以为任意的数据类型。
按K取值
:因为字典是无序性,所以不支持用索引取值。而是用按K取值。
如果K不存在,则会报错!!!就是说字典中没有“K”这个信息,则会出错。
数据类型之布尔值
(bool)
判断事物的可行性
有两种状态:True
False
命名规律:以is开头 eg:is_right
isleft
在实际项目中数据库存储数据的特征,用一个字段来表示数据是否删除。
数据类型之元组
(tuple)
被称为不可改变的列表,用小括号
包含多个数据,
eg:list1 =[1, 2, 3]
tuple1 = [1, 2, 3]
list1[0] = 'w' # 打印出[w, 2, 3]
tuple[0] = 'w' # 打印会出错。
数据类型之集合
(set)
用大括号
包含数据值,符号和字典一样,但是内部构造不一样。
对于定义空集合是不一样的
不能直接 s = { }
这样显示的数据类型是字典(dict)型
需要加个关键字set
s = set( )
这样出来的数据类型是集合。
与用户交互
输入
:外界向计算机传递信息。
name = input( "输入信息:")
input获取用户输入的值的数据类型都是字符串型(str)
所有数据需要强制的转换数据类型。
eg:num = input("输入数字:")
num = 123
num = int(num)
输出
:计算机向外界传达信息。
换行符
格式化输出
提前准备好一些文本,之后格式化输出并替换其中一些内容。
%s
:能够给所有数据类型占位。
'name %s' % 'xx'
'name: %s,age:%s'%('xx',12)
'name:%s'%('xx', )
%d
:只能给数字占位。
产生固定位数的数据:
eg:print('%05d',23) #00023
固定规定为5位数,不够需在前面补0
运算符
赋值符
链式赋值
x = y = z
交叉赋值
方式一:中间变量
方式二:n, m = m, n
解压赋值
今日内容大概
运算符(补充剩下3种)
逻辑运算
成员运算
身份运算
流程控制理论
流程控制详细语法
今日内容详细
1.and 与 or或 not非 上述运算符需要配合条件使用。 and链接的多个条件必须都成立才能成立(True) or链接的多个条件有一个成立就成立(True) not 条件取反 2.操作方法: 1 == 1 and 2 > 10 and 3!=6 如果所有连接符都是and,则需要找出一个不符合要求,判断错误的条件就能判断结果不成立。 1 != 1 or 2==2 or False 如果所有连接符都是or,则需要找出一个符合要求条件,判断正确的条件就能判断结果成立。 not False = True not True = False 3.三者混合使用,需要加个括号来表示优先级,不然会出错。
1.in 在...之内 如果在指定的序列中找到值返回 True,否则返回 False。 not in 不在...之内 如果在指定的序列中没有找到值返回 True,否则返回 False。 2.操作方法: l1 = ['wyb', 'xz', 'bjyx'] 判断列表的某个个体是否在成员名单中: print('wyb' in l1) # True print('xx' in l1 ) # False 列表在做成员运算的时候最小单位为数据值的整体,不能拆分合并。 s1 = 'hello,world!' print('h' in s1) # True 字符串在做成员运算的社会化最小单位为单个字符,可以增加字符的个数。 d1 = {'name':'xx','pwd':123} print('xx' in d1) # Flalse print(123 in d1) # False print('name' in d1) # True 字典在做成员运算的时候只有K会参与运算,V不能暴露在外界。
1.is 判断数据值的内存地址是否一致 2.== 判断数据值的值是否一致 3.id() 该方法会返回一串数字,相当于内存地址 4.操作方法: l1 = [1111,222,22] l2 = [1111,222,22] #2129114809216 print(id(l1))#2129114810176 print(id(l2))#2129114809216 print(l1 == l2) # True 判断值 print(l1 is l2) # False 判断内存地址 综上可知:值相等,但是内存地址可能不同, 因为,cpu每次向内存申请位置都是随机的。 内存地址相等,则值就相等(对于单次程序中) 5.python具有内存优化功能。 python对于数据量比较小的或者经常使用的数据就会做内存优化 '''小整数池''' 还有一些IDE编辑工作也会做更多的优化处理 (上述代码使用解释器直接运行,地址不一样的)
'''事物执行的流程''' 1.顺序结构 从上到下依次执行,,程序在一般情况下是按顺序执行的。 2.分支结构 根据条件的不同执行不同代码。 3.循环结构 根据条件的判断决定是否一直执行操作。
1.python中使用代码的缩进来表示代码的从属关系 缩进的代码是否运行取决于上面有没有父代码(结尾有冒号) 2.缩进量其实没有要求,只要缩进了即可。#为了美观,一般推荐使用空四格 3.并不是所有的代码都可以拥有子代码 if else elif 中,elif和else不能单独使用需要和if一起使用才行。 且 if else elif 都在同一层次。 4.同属于一个父代码的多行子代码应该保证相同的缩进量 如果代码缩进了,那就必须往上找一个缩进量比它小的代码作为父代码 如果这个父代码可以拥有子代码的权限,则不会报错。 5.相同缩进的代码间没有主次之分,都是按照顺序依次执行。
分支结构
,那么需要使用关键字if
1.单if分支 if 条件 : (条件成立执行代码---子代码) #条件可以是布尔值也可以是表达式。 #条件可以是一个,也可以是由多个逻辑运算符链接的条件。 操作方法: 一般模式: #定义女人的年龄 age = 29 #判断女人的年龄 if age < 30: print('你好!') 嵌套: #定义女人的年龄 age = 29 #判断女人的年龄 if age < 30: print('你好!') if True : print('come on!') 2.if...else分支 if 条件: (条件成立之后执行---子代码) else: (条件不成立执行----子代码) #条件可以是一个,也可以是由多个逻辑运算符链接的条件。 eg: #获取用户名和密码 name = input('name>>>:') qwd = input('pwd>>>:') #判断用户名和密码是否正确 if name == 'xz' and pwd == 123 #python中不同的数据类型之间无法直接做比较。 '''所以这里需要强制类型转换,因为input输入的数据值类型都是字符串类型,所以我们需要转换一下。''' pwd = int(pwd) if name == 'wyb' and pwd == '123': print("请!") ealse: print("zou!") 3.if...elif...else分支 if 条件1: (条件1成立执行---子代码) elif 条件2: (条件1成立执行---子代码) elif 条件3: (条件2成立执行---子代码) elif: (上述所有的条件都不成立执行的代码) '''if elif else 三者连用,永远只会走一个分支 elif 和 else都是不能单独使用 必须结合if ''' 4.if的嵌套使用 #1.先定义各种条件 is_see = True is_work = True is_go = True #2.条件判断 if is_see: print("看到了") if is_work: print("做到了") if is_go: print("离开了") else: print("没离开") else: print("没做到") else: print("没看到")
作业02
1.女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:你好,再见!
#定义年龄、身高、体重 age = input('Please enter your age >>> :') height = input('Please enter your height >>> :') weight = input('Please enter your weight >>> :') #强制类型转换 age = int(age) height = int(height) weight = int(weight) #条件判断,if的嵌套使用 if age >= 18: if age < 22: if height > 170: if weight < 100: print("小姐姐,你好漂亮!") else: print("你好,再见!") else: print("你好,再见!") else: print("你好,再见!") else: print("你好,再见!")
2.根据用户输入内容打印其权限
#定义用户名 name = input("Please enter your user name >>>:") #if...elif...else 分支 if name == 'jason' : print("You are the super administrator !") elif name == 'tom': print("You are the general administrator") elif name == 'jack' or 'rain': print("You are the business director") else: print("You're a regular user")
3.编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = ['jason','kevin','tony']
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123
#定义用户名和密码,黑名单 black_user_list = ['jason', 'kevin', 'tony'] name = input("Please enter your user name: ") qwq = input("Please enter your password: ") qwq = int(qwq) #判断用户输入的用户名是不是在黑名单内。 if name not in black_user_list: #再判断输入的用户名是不是已有的用户名 if name == 'xz': if qwq == 123: print("登入成功!!!") else: print("密码错误!!!") else: print("用户名或者密码有错!!!") else: print("你是黑名单不能进入!!!")