04学习总结
一、作业改错
-
x = (y = z + 1) × —— 赋值语句无法提供数据
-
C语言编译型
C源码 (.c)-—编译—>可执行文件(.exe) —执行—>计算机执行
-
python - 解释型语言
python源码(.py)—(解释执行)—>计算机执行 (边翻译边执行)
python版本 - A.B.C(C-修改bug、B-添加新功能、A - 重大修改,A不同不兼容)
-
空串和空格意义不同:空格是有意义的。
-
python对大小写敏感
-
输入数据注意类型转换
-
注意区分 /(除) 和 //(整除)
二、流程控制
1.顺序结构
- 代码从上往下一条一条执行,每条语句只执行一次(默认);
- 注意:input函数会将程序暂停,输入操作后接着执行
2.分支结构
- 代码在执行过程中,根据条件选择执行或者不执行某些代码(if语句)
3.循环结构
- 代码只写一边重复执行多次(for、while )
# 1)顺序结构:
print('ok')
print('yes')
# input('输入任意字符:')
# 2)分支结构
age=int(input('input age:'))
if age>=18:
print('adult')
else:
print('child')
# 3)循环结构
for _ in range(10):
print('ok',end=' ')
三、分支结构
1.if 单分支结构
-
如果xxx就xxx(满足某个条件执行某个操作,不满足时不执行)
-
语法:if 条件语句:
代码段 -
说明:
- if - 关键字:固定写法
- 条件语句 - 对应的条件代码(必须是一个有结果的表达式 - 赋值语句不能做条件)
- 冒号 - 固定写法(英文输入法下)
- 代码段 - 结构上,和if保持缩进的一条或多条语句(至少一条)
逻辑上,满足条件才执行的代码
-
执行过程:先判断条件语句.是否成立:成立代码段执行,否则就不执行。
案例:如果score对于80分就打印‘通过‘
score = 4 # int(input("input score:"))
if score > 80:
print("pass")
print('get rewards') # 满足条件才执行
if score > 80:
print("pass")
print('get rewards') # 总会执行
- 练习1:根据num的值打印奇数
num1 = 335
if num1 % 2 != 0:
print("奇数") #奇数
- 练习2:判断一个数是否是水仙花数
um = 153
if num // 1000 == 0 and num == (num // 100) ** 3 + (num % 100 // 10) ** 3 + (num % 10) ** 3:
print('水仙花数')
# 水仙花数
2.if 双分支结构
-
如果xxx就xxx,否则xxx(满足条件执行一个操作,条件不满足时执行另外的操作)
-
语法:
if 条件语句:
代码段1(满足条件时执行)
else:
代码段2(不满足条件时执行) -
练习1:根据num的值打印奇数或者偶数
num = 80
if num % 2 == 0:
print('偶数')
else:
print('奇数')
- 练习2:根据age的值打印成年或者未成年
age = 29
if age >= 18:
print('成年')
else:
print('未成年')
- 练习3:如果num1大于10,就减5,否则num加5
num1 = 89
if num1 > 10:
num1 -= 5
else:
num1 += 5
print(num1)
3.if 多分支结构
-
如果xx就xx,如果xxx就xxx,…(根据不同的条件做不同的事情)
-
方法1: 多个单支语句如果其中一个条件成立,其他条件也有可能成立时使用
- if 条件语句1:
代码段1
if 条件语句2
代码段2
if 条件语句3
代码段3
- if 条件语句1:
-
案例:如果考试100分 买车,90分 买鞋,80多分 吃火锅,80分以下 打死
score = 99
if score == 100:
print('买车')
if 90 <= score < 100:
print('买鞋')
if 80 <= score < 90:
print('吃火锅')
if score < 80:
print('打死')
# 虽然可用但是会执行不必要的操作,效率低,不管条件是否满足,每一个条件语句都会判断
- 方法2:使用if-elif结构(如果其中一个条件成立,其他条件绝不会成立时使用)
- if 条件语句1:****
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
…
else: - (可以没有)
代码段n - 特点:后面的条件是在前面的条件不成立的情况下执行判断。
- if 条件语句1:****
score = 99
if score < 80:
print('打死')
elif score < 90:
print('吃火锅')
elif score < 100:
print('买鞋')
elif score == 100:
print('买车') #从小往大写,可以写的更简洁
- 练习:如果num是偶数打印’偶数‘,如果是奇数就打印奇数,如果能被5整除就打印5的倍数
num = 43
if num % 5 == 0:
print('5的倍数')
if num % 2 == 0:
print('偶数')
else:
print('奇数')
四、循环结构
1.for 循环结构
-
语法:
for 变量 in 序列:
循环体 -
说明:
- for - 固定写法
- 变量 - 变量名(没有定义的变量名也可以)
- in - 关键字:固定写法
- 序列 - 容器型数据类型的数据就是序列;
- 冒号 - 固定写法
- 循环体 - 结构上,和for保持一个缩进的一条或多条语句(至少一条)
逻辑上,需要重复执行的代码
-
执行过程:
- 让变量去序列中一个一个取值,取完为止,每取一次,执行一次循环体;
- 循环的次数由序列中元素的个数决定。
-
扩展:容器型数据类型&非容器型数据类型
- 非容器型变量:同一时间只能保存一个数据
- 常见的容器型数据:字符串、列表、元组、集合、字典、迭代器、生成器
-
案例:案例使用for循环打印 hello word 5次
for i in '12345':
print(i, 'hello word!')
-
range函数 - 创建等差数列
-
使用字符串来限制for循环的执行次数,当所需循环次数过大时,这种方法使用起来极其不方便;
-
range函数三个用法:
-
range(N) - 创建一个[0,N)的等差数列,差是1,
例如:range(5) - 0,1,2,3,4
-
range(M,N) - 创建[M,N)的等差数列,差是1,例如:range(5,10) - 5,6,7,8,9
-
range(M,N,step) - 创建[M,N)的等差数列,差是step,
例如:range(5,12,2) - 5,7,9,11
range(20,10,-2) - 20,18,16,14,12
-
-
-
练习:写出以下等差数列对应的range函数
- 0 1 2 3 4 5
- 1 3 5 7 9 11
- 90 100 110 120 130
- 9 8 7 6 5
- 19 16 13
- 2 1 0 -1 -2
# 0 1 2 3 4 5
for i in range(6):
print(i, end=' ')
print()
# 1 3 5 7 9 11
for i in range(1, 12, 2):
print(i, end=' ')
print()
# 90 100 110 120 130
for i in range(90, 131, 10):
print(i, end=' ')
print()
# 9 8 7 6 5
for i in range(9, 4, -1):
print(i, end=' ')
print()
# 19 16 13
for i in range(19, 12, -3):
print(i, end=' ')
print()
# 2 1 0 -1 -2
for i in range(2, -3, -1):
print(i, end=' ')
print()