一、分支
1. if 语句
- a.语法:
if 条件语句:
代码段 - b.说明:
if - 关键字
条件语句 - 任何有结果的表达式(不管是什么类型)
代码段和if保持一个缩进的一条或者多条语句 - c.执行过程:
先判断条件语句的结果是否是True,如果是则执行,反之则不执行
注意:如果条件语句的结果不是布尔,会将结果转化为布尔再判断
赋值语句不能写在if的后面
# 练习:随机产生一个年龄值,如果大于18就打印 成年
import random # 导入生成随机数的模块
age = random.randint(0, 100) # 随机生成0~100中的一个数(不包括100)
if age >= 18:
print("成年")
print("你的年龄是%d" % age)
2. if- else 语句
-
a.语法:
if 条件语句:
代码段1
else:
代码段2 -
b.执行过程:
先判断条件语句是否为True,为True就执行代码段1:否则执行代码段2
# num = input("请输入")
num = 12
# try,except,finally为异常捕获
try: # 尝试执行的代码
if num & 1 == 0:
print("我是偶数%d" % num)
elif num & 1 == 1:
print("你是奇数%d" % num)
except: # 发生异常执行的代码
print("非奇非偶吧你{0}".format(num))
finally: # 无论发不发生异常都会执行的代码
print("Hello python")
3. if - elif - else 语句
-
语法:
if 条件语句1:
代码段1
elif 条件语句2:
代码段2
elif 条件语句3:
代码段3
...
else:
代码段n -
执行过程:
先判断条件语句1是否为True,为True就执行代码段1;
否则,就判断条件语句2是否为True,为True就执行代码段2
否则,就判断条件语句3是否为True,为True就执行代码段3
...
如果全部条件语句都不执行就执行 else
注意:1.后面的条件判断前提是前面的条件不成立
2.elif根据条件可以有多个,else也可以省略
import random
score = random.randint(40, 100)
print("你的考试成绩:%d" % score)
print("你的综合测评:", end="")
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("留级")
4. if 的嵌套
- 可以在if ,else后面的代码段中,都可以再写其他的if语句
number = random.randint(0, 100)
if number & 1 == 0:
print("偶数:%d" % number)
if number % 4 == 0:
print("4的倍数:%d" % number)
else:
print("你是奇数:%d" % number)
# 练习:输入一个字符串,判断是否第一个字符是字母,如果是 打印“一字母开头”
# 如果这个字母是大写的,再打印“大写字母”
str1 = input("请输入")
if str1[0].isalpha():
print("字母开头")
if str1[0].isupper():
print("大写字母")
else:
print(str1)
# 方法2
if "a" <= str1[0] <= "z" or "A" <= str1[0] <= "Z":
print("以字母开")
if "A" <= str1[0] <= "Z":
print("大写字母")
else:
print(str1
二、for 循环
-
a.语法:
for 变量 in 序列:
循环体 -
b.for - 关键字
变量 - 变量名,(满足变量命名规范)
in - 关键字
序列 - 可以是字符串、列表、元组、字典、集合、迭代器、range
循环体 - 和for保持一个缩进的一条或者多条语句(需要重复执行的代码) -
c.执行过程:
让变量取序列中取值,一个一个的取,取完为止;每取一个值,依次执行循环体
for循环中,序列中值的个数,确定了循环的次数 -
d.如果for后面取到的值,在循环体里面不使用,那么这个变量命令的时候,用一个_来命名
for i in "abc":
print(i)
range说明
- range(n) - 产生数字序列,序列中的内容是0~ n-1(结果是序列)
range(m,n) - 产生数字序列,序列中的内容是m~ n-1
range(m,n,step) - 产生数字序列,从m开始,每次增加step,直到n-1为止
range一般用在:
a.需要产生指定范围的数字序列
b.单纯的控制for循环的次数
for i in range(5):
print(i)
print("~"*20)
for i in range(10, 15):
print(i)
for i in range(20, 30, 2):
print(i)
练习:获取一个字符串中数字的个数,并在控制台输出
str1 = "sd454df5sd5f45dfd4f5dfdg"
count = 0
for char in str1:
# print(i)
if "0" <= char <= "9":
count += 1
print("数字个数:%d" % count)
三、while 循环
-
a.语法:
while 条件语句:
循环体 -
b. 说明:
while - 关键字
条件语句 - 有结果的表达式(除了赋值语句,一般的表达式都行) -
c.执行过程:
先判断条件语句是否为True,为True就执行循环体;
执行完循环体再判断条件语句是否为True,为True就执行循环体;
执行完循环体再判断条件语句是否为True,为True就执行循环体;
...
直到判断条件结果为False,整个循环结束
num = 1
result = 1
while num <= 10:
result *= num
num += 1
print(result)
str1 = "abc123"
num = 0
while num < len(str1):
print(str1[num])
num += 1
for循环和while循环的选择
-
使用for循环:
a. 获取序列中的元素(值)
b. 循环次数确定 -
while循环:
a. 死循环
b. 循环次数不确定
# 不确定循环的次数
# 方法一
value = input('请输入:')
while value != '0':
value = input('请输入:')
print('结束!')
# 方法二
while True:
index = input("请输入:")
if index == "0":
print("~~~~~~~~~")
break
四、continue、break和else
- continue 是一个关键字,只能写在循环中
功能:当循环执行过程中遇到continue,会结束当次循环,直接今日下次循环的判断
(直接进入下次循环的判断:for循环就是用比那辆取下一个值
while就是直接判断条件语句是否为True
for i in range(0, 10):
if i & 1 == 0:
continue
print("我是奇数:%d" % i)
- break是一个关键字,只能写在循环体中
功能:当循环过程中遇到可break,整个循环直接结束
for x in range(10):
print(x)
break
else
- a.语法:
while 条件语句:
循环
else:
代码段
for 变量 in 序列:
循环体
else:
代码段
- b.执行过程:
else结构不会影响原循环的执行过程。当循环自然死亡的时候,就会执行else后边的代码段。
循环因为遇到break而结束的时候不会执行else后边的代码段
for x in range(10):
print(x)
if x == 3:
break
else:
print('for循环结束了')
网友评论