- 关于行的处理
- 调试
- 一.选择语句
- If elif else 语句
- if 语句的真值表达式
- 条件表达式
- 二.循环语句
- while语句
- for 语句
- range 函数
- 三.跳转语句
- break 语句
- continue 语句
- pass 语句
- 总结
- 物理行:程序员编写代码的行。
- 逻辑行:python解释器需要执行的指令。
- 建议一个逻辑行在一个物理行上。
- 如果一个物理行中使用多个逻辑行,需要使用分号;隔开。
- 如果逻辑行过长,可以使用隐式换行或显式换行。
隐式换行:所有括号的内容换行,称为隐式换行
括号包括: () [] {} 三种
显式换行:通过折行符 (反斜杠)换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。
加断点
调试运行
单步运行F8
停止调试 ctrl F2
- 作用:
让程序根据条件选择性的执行语句。 - 语法:
if 条件1:
语句块1
elif 条件2:
语句块2
else:
语句块3
- 说明:
elif 子句可以有0个或多个。
else 子句可以有0个或1个,且只能放在if语句的最后。
if 100:
print("真值")
#等同于
if bool(100):
print("真值")
直接用返回的结果直接的默认bool值,作为条件
"""
录入一个整数,奇数返回奇数,偶数返回为偶数
"""
while True:
state = '奇数' if int(input('输入一个整数:')) % 2 else '偶数'
print(state)
但是,也要注意代码的可读性
year = int(input("请输入年份:"))
# 代码的可读性
# day = 29 if ((not (year % 4) and year % 100) or not (year % 400)) else 28
day = 29 if ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0) else 28
print(day)
条件表达式
语法:变量 = 结果1 if 条件 else 结果2
作用:根据条件(True/False) 来决定返回结果1还是结果2。
state = '奇数' if int(input('输入一个整数:')) % 2 else '偶数'
print(state)
二.循环语句
while语句
- 作用:
可以让一段代码满足条件,重复执行。
对于循环的条件有鲜明的要求 - 语法:
while 条件:
满足条件执行的语句
else:
不满足条件执行的语句
"""
产生1到100之间的随机数,让用户猜测,直到猜对为止
"""
import random
num2 = random.randint(1, 100)
count = 0
while count < 5:
count += 1
num1 = int(input('你猜的数字是:'))
if num1 == num2:
print('对了', ' ', '猜了%s次!' % count)
break
elif num1 > num2:
print('太大了')
else:
print('太小了')
# 条件不满足时才运行
else:
print('笨死')
注意:小数的科学计数法表示
"""
一张纸的厚度是0.01毫米,
请计算,对折多少次超过珠穆朗玛峰(8844.43米)
"""
# 数据:厚度 --> 次数
# 算法:对折 * 2
# thickness = 0.01 / 1000
thickness = 1e-5
count = 0
while thickness < 8844.43:
# 对折
thickness *= 2
count += 1
# 体会指数型组织
print("第" + str(count), "次对折高度是" + str(thickness))
print(count)
- 说明:
else子句可以省略。
在循环体内用break终止循环时,else子句不执行。
- 作用:
用来遍历可迭代对象的数据元素。
可迭代对象是指能依次获取数据元素的对象,例如:容器类型。 - 语法:
for 变量列表 in 可迭代对象:
语句块1
else:
语句块2
- 说明:
else子句可以省略。
在循环体内用break终止循环时,else子句不执行。
- 作用:
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。
对于循环的次数有鲜明的要求 - 语法: 符合切片原则
range(开始点,结束点,间隔)
"""
三道加法题,答对得10分,答错减5分
"""
import random
score = 0
for i in range(3):
random_number1 = random.randint(1, 10)
random_number2 = random.randint(1, 10)
sum1 = random_number1 + random_number2
sum2 = int(input(str(random_number1) + '+' + str(random_number2) + '='))
if sum1 == sum2:
score += 10
else:
score -= 5
if score < 0:
score = 0
print('此时得分:', score)
print('总分:', score)
- 说明:
函数返回的可迭代对象可以用for取出其中的元素
返回的数字不包含结束点
开始点默认为0
间隔默认值为1
# 练习1:累加0 1 2 3
sum_value = 0
for item in range(4):
sum_value += item
print(sum_value)
# 练习2:累加2 4 6 8 10
sum_value = 0
for item in range(2,11,2):
sum_value += item
print(sum_value)
# 练习3:累加1 4 7 10
sum_value = 0
for item in range(1,11,3):
sum_value += item
print(sum_value)
# 练习4:累加8 7 6 5
sum_value = 0
for item in range(8,4,-1):
sum_value += item
print(sum_value)
# 练习5:累加-1 -2 -3 -4 -5
sum_value = 0
for item in range(-1,-6,-1):
sum_value += item
print(sum_value)
三.跳转语句
好比嗑瓜子~
嗑到一个臭的,吐掉,继续嗑下一个,这是continue,直接不嗑了,这是break
- 跳出循环体,后面的代码不再执行。
- 可以让while语句的else部分不执行。
跳过本次,继续下次循环。
"""
从10到50,,累加个数不是2,5,9的数
"""
sum1 = 0
for i in range(10, 51):
num = i % 10
if num == 2 or num == 5 or num == 9:
continue
sum1 += i
print(sum1)
pass 语句
通常用来填充语法空白。
总结


