1.分支结构
python中的分支结构只有if语句,没有switch
1.if语句
语法:
if 条件语句:
代码段
说明:
if 关键字
条件语句 不能是赋值语句
: 固定
代码段 和if保持缩进
执行过程:
先判断条件语句的结果是否是True,如果是True,执行冒号后面的代码段,否则不执行
注意:如果条件语句的结果不是布尔,会先将结果转换成布尔再判断
if 10:
print('条件语句是10')
if True:
print('条件语句是True')
num = 12
if num & 1 == 0:
print('%d是偶数' % num)
print('--------------')
运行:
image.png
- 产生一个年龄的随机数,打印年龄,如果年龄大于等于18,打印'成年'
import random
age = random.randint(0, 100)
if age >= 18:
print('成年')
print('年龄:', age)
运行:
image.png
2.if...else
语法:
if 条件语句:
代码段1
...
else:
代码段2
...
执行过程:
判断条件语句是否为True 否则执行else
- 随机产生一个整数,如果是奇数打印'xxx是奇数',否则打印'xxx是偶数'
import random
num = random.randint(0, 100)
if num & 1:
print('%d是奇数' % num)
else:
print('%d是偶数' % num)
运行:
image.png
3.if...elif...else
语法;
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
...
else:
代码段n
先判断条件语句是否为True,为True就执行代码段1,
否则就判断elif后面的条件语句,为True就执行相应代码,
否则继续往后判断;如果都为False则执行else后面的代码
注意:后面条件判断的前提是前面的条件不成立
这里的elif根据情况可以有多个,else也可以省略
- 60-70及格 70-90 良好 90以上优秀 60以下不合格
grade = float(input('请输入一个数:'))
if grade >= 90:
print('优秀')
elif 70 <= grade < 90:
print('良好')
elif 60 <= grade < 70:
print('及格')
else:
print('不合格')
运行:
image.png
4.if嵌套
可以在if,elif,else后面的代码段中,都可以写其他的if语句
- 如果一个数是偶数就打印'偶数',否则就打印'奇数'。如果偶数还能被4整除,再打印'4的倍数'
num = int((input('请输入一个自然数:')))
if num & 1:
print('奇数')
else:
print('偶数')
if num % 4 == 0:
print('4的倍数')
运行:
image.png
- 输入一个字符串,判断字符串的第一个字符是否是字母,如果是打印'第一个字符是字母', 如果这个字母大写,再打印大写字母
str1 = input('请输入一串字符:')
if str1[0].isalpha():
print('第一个字符是字母')
if str1[0].isupper():
print('大写字母')
运行:
image.png
2.for循环
python中的循环结构有两种:for循环和while循环
什么时候用循环:某个操作需要重复执行,就考虑用循环
1.for循环
语法:
for 变量 in 序列:
循环体
for in 关键字
序列 字符串、列表、元组、字典、集合、迭代器
循环体 和for保持缩进的一条或者多条语句(需要重复执行的代码)
执行过程:
让变量去序列中取值,一个一个的取,取完为止,每取一个值,执行一次循环体
for(循环中,序列中元素的个数,决定了循环次数)
注意:如果for后面的变量取到的值,在循环体里用不到,那么变量命名的时候,用_命名
for _ in 'abc':
print('********')
2.range
range(n) 产生一个数字序列 0 ~ n-1
range(m,n) m ~ n-1
range(m,n,step)
range 一般用在需要产生指定范围的数字序列
单纯的控制for循环的循环次数
for num in range(0, 10, 2):
print(num)
- 练习:求1+2+3+5+...+100
sum1 = 0
for num2 in range(1, 101):
sum1 += num2
print(sum1)
- 练习:2+4+...+100
sum = 0
for num in range(0, 101, 2):
sum += num
print(sum)
- 练习:写程序统计一个字符串中数字字符的个数
str1 = input('请输入一个字符串:')
count = 0
for str2 in str1:
if str2.isdigit():
count += 1
print(count)
运行:
image.png
3.while循环
- 1.while循环
语法:
while 条件语句:
循环体
while 关键字
条件语句 有结果的表达式(除了赋值语句,一般的都可以)
循环体 和while保持缩进
执行过程:
判断条件语句是否为True 为True 执行循环体
然后重复执行 直到条件语句为False 循环结束
-
1 * 2 * ... *10
sum = 1
num = 1
while num <= 10:
sum *= num
num += 1
print(sum) -
使用while循环,获取字符串'abc123'中的每个字符
str1 = 'abc123'
index = 0
while index < len('abc123'):
print(str1[index])
index += 1 -
2.for循环和while循环的选择
python中for循环能做的while循环都可以做
但是while循环能做的for循环不一定能做
使用for循环
a.循环次数确定
b.获取序列中的元素
使用while循环
死循环
循环次数不确定
- 练习:程序可以不断地进行输入 直到输入的值为0为止
num = input('请输入:')
while num != '0':
num = input('请输入:')
4.continue、break和else
- 1.continue是一个关键字,只能写在循环体中
功能:当程序执行中遇到continue会结束当次循环,直接进入下次循环的判断
直接进入下次循环的判断:for循环就是用变量取下一个值,while循环就是直接判断条件语句是否为False
sum1 = 0
for x in range(100):
if x % 2 == 0:
continue
sum1 += x
print(sum1)
- 2.break是一个关键字,只能写在循环体中
功能;当循环过程中遇到break,当前整个循环直接结束
num = 1
sum1 = 0
while True:
sum1 += num
num += 1
if sum1 >= 100:
break
print(sum1)
3.else
语法:
while 条件语句:
循环
else:
代码段
for 变量 in 序列:
循环体
else:
代码段
else不会影响原循环过程 当循环自然死亡,就会执行else后面的代码
当循环遇到break结束的时候不会执行else后面的代码段
网友评论