PythonClassChy/python27Class/pythonLearningNotes/flora_0215_notes.txt

232 lines
7.1 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=================================
Notes
Author: Flora Chen
-_- -_- -_- -_- -_- -_- -_- -_-
=================================
******集合******
1. 集合的定义
集合: set类型 通过{}来表示
内部的数据{value, value1, value2}
示例:
set1 = {11, 22, 33, 44, 55}
print(type(set1)) # 输出结果:<class 'set'>
2. 集合的特性
集合的数据不能存在重复的元素;
集合中的数据只能是不可变类型(数值类型,字符串,元组);
集合和字典都是无序的,没有下标索引;
集合是可变类型的数据。
集合的操作:
add: 添加数据
pop删除数据
示例:
set1 = {11, 22, 33, 44, 55, 55}
print(set1) # 输出结果:{33, 11, 44, 22, 55}
set1.add(678)
print(set1) # 输出结果:{33, 678, 11, 44, 22, 55}
set1.pop() # 随机删除一个元素
print(set1) # 输出结果:{678, 11, 44, 22, 55}
3. 集合的应用
对数据的去重
示例:
# 对字符串去重
str1 = 'dfgdfghjkhjk'
s1 =set(str1)
print(s1) # 输出结果:{'d', 'k', 'f', 'j', 'g', 'h'}
# 对列表去重
li = [11, 11, 22, 22, 33]
s1 =set(li)
print(list(s1)) # 输出结果:[33, 11, 22]
用来区分数据是否可变
# 运行不报错的就都是不可变类型的:数值类型,字符串,元组
set1 = {111, 12.33, '243', True, (1, 2)}
# 运行报错的就都是可变类型的:列表,字典,集合
# set2 = {[1, 2, 3]} # TypeError: unhashable type: 'list'
# set3 = {{'name': 'flora'}} # TypeError: unhashable type: 'dict'
set4 = {{1,2,3}} # TypeError: unhashable type: 'set'
******数据类型总结******
1. 按数据结构分类
数值类型:整数,浮点数,布尔值
序列类型:字符串,列表,元组(可以通过下标取值,支持切片操作)
散列类型:字典,集合(元素内部是无序的,没有下标)
2. 数据类型的可变与不可变
不可变类型:数值类型,字符串,元组
字符串和元组定义之后不能修改内部结构或者值(内存单元中的值),为不可变类型
可变类型:列表,字典,集合
如何区分可变不可变数据:定义一个集合,把数据放到集合中看会不会报错。会报错的是可变类型。
******控制流******
顺序:代码从上往下执行
分支:根据不同的条件,执行不同的代码
循环:特定的代码重复执行
注意python中通过缩进来区分代码块的。
******条件判断******
1. if语句
if 条件:
# 条件成立执行的代码块
示例:
# 用户输入考试成绩,请判断是否及格。
score = float(input('请输入您的成绩:'))
if score >= 60:
# 条件成立执行的代码块
print('考试及格!')
2. if - else语句
if 条件:
# 条件成立执行的代码块
else:
# 条件不成立执行的代码块
示例:
# 用户输入考试成绩,请判断是否及格。如果考试不及格,打印:考试不及格,晚上通宵敲代码!
score = float(input('请输入您的成绩:'))
if score >= 60:
# 条件成立执行的代码块
print('考试及格!')
else:
# 条件不成立执行的代码块
print('考试不及格,晚上通宵敲代码!')
3. if - elif - else语句
if 条件1
# 条件成立执行的代码块
elif 条件2
# 条件2成立执行的代码块
elif 条件3
# 条件3成立执行的代码块
else:
# 以上条件均不成立执行的代码块
# 用户输入考试成绩根据不同等级进行区分A 90分以上 B80-90分 C 60-80分 D60分以下
score = int(input('请输入您的成绩:'))
if 0 <= score < 60:
print('您的成绩为D')
elif 60 <= score < 80:
print('您的成绩为C')
elif 80 <= score < 90:
print('您的成绩为B')
elif 90 <= score < 100:
print('您的成绩为A')
else:
print('您输入的成绩有误!')
4. 多个条件同时判断
# 登录小案例:事先存储一组账号密码,提示用户输入账号和密码,然后判断账号密码是否输入正确
user_info = {'user': 'flora', 'pwd': '123455555Az'}
username = input('请输入账号:')
passwd = input('请输入密码:')
# 方式一:使用嵌套方式
if username == user_info['user']:
if passwd == user_info['pwd']:
print('账号密码输入正确!')
else:
print('密码输入不正确!')
else:
print('账号输入不正确!')
# 方式二:使用逻辑运算符去判断多个条件
if username == user_info['user'] and passwd == user_info['pwd']:
print('账号密码输入正确!登录成功!')
else:
print('账号或密码输入不正确!登录失败!')
总结:
使用if开启一个条件判断语句
一个条件语句中只有一个if但是一个条件语句中可以有多个或者一个或者零个elif;
一个条件语句中只有一个或者零个else。
if判断成立的标准
if成立的标准是根据if后面的python表达式或者数据的布尔值是否为True来确定条件是否成立
******python中数据的布尔值******
非0位TrueNone 数字0或者数据长度为0len()的布尔值为False 其他数据布尔值都是True
数据长度为0 例如:空字符串,空列表,空元祖,空字典
示例:
str1 = 'python'
li = [1, 2, 2]
if li:
print('成立!')
else:
print('不成立!')
******while循环(条件循环)******
1. while循环的使用
如果条件一直成立,则一直循环做条件满足的事情,直到条件不成立,结束循环。
while 条件:
# 条件成立,循环执行的代码块
# 条件成立,循环执行的代码块
# 条件成立,循环执行的代码块
# ......
示例:
# 创建一个变量来保存循环的次数
i = 0
while i < 5:
print('hello python')
i += 1 # i = i + 1
# 输出结果:
"""
hello python
hello python
hello python
hello python
hello python
"""
2. 死循环以及相关案例的使用
死循环:循环的条件一直成立,在循环体中无限循环,称之为死循环。
避免写代码的过程中因为逻辑问题,造成代码死循环。
示例:
while True:
print('hello python')
3. break强制跳出循环
死循环在特定的需求下我们也会使用再循环内部要实现跳出循环的机制合理使用break
示例:
while True:
user_info = {'user': 'flora', 'pwd': '123455555Az'}
username = input('请输入账号:')
passwd = input('请输入密码:')
if username == user_info['user'] and passwd == user_info['pwd']:
print('账号密码输入正确!登录成功!')
break
else:
print('账号或密码输入不正确!请重新输入!')
4. 循环内嵌套条件语句
示例:
# 打印3次之后强制退出循环
i = 0
while i < 5:
print('hello python')
i += 1 # i = i + 1
# 当i=3时退出循环
if i == 3:
break
5. continue终止本轮循环直接进行下次循环的条件判断
示例:
# 第5-7次不打印
i = 0
while i < 10:
i += 1 # i = i + 1
# 当i在5~7之间则执行continue终止本轮循环进行下轮循环的条件判断
if 5 <= i <= 7:
continue
print('hello python')