LEMON

记录站

0%

Python控制语句(六)

pyhton 控制语句

程序在一般情况下是按顺序执行的,编程语言提供了各种控制结构,允许复杂的执行路径。循环语句允许执行一个语句或语句多次

if 控制语句

一、if 语句格式

何为真假?

假:0 0.0 “” None Flase;计算表达式的值如果等于0、0.0、”空字符串”、None、Flase的都为假

真:除了假的这些值,其他的都为真

1
2
3
4
5
6
# 格式
if 表达式:
语句

# 逻辑
当程序执行到if语句时,首先计算"表达式"的值,如果"表达式"的值为真,就执行if下的"语句";如果"表达式"的值为假,则跳过整个if语句,继续向下执行。

二、if-else 语句格式

1
2
3
4
5
6
7
8
# 格式
if 表达式:
语句1
else
语句2

# 逻辑
当程序执行到if-else时,首先计算"表达式"的值,如果"表达式"的值为真,则执行"语句1",执行完"语句1"跳出整个if-else语句;如果"表达式"的值为假,则执行"语句2",执行完"语句2"跳出整个if-else语句。

三、if-elif-else 语句格式

注:elif 可以在一个if语句里出现多次,没有限制

1
2
3
4
5
6
7
8
9
10
11
12
13
# 格式
if 表达式1
语句1
elif 表达式2
语句2
elif 表达式3
语句3
......
else:
语句4

# 逻辑
这里面的每个elif都是对他上面所有表达式的否定;当程序执行if-elif-else语句时,首先会计算“表达式1”的值,如果“表达式1”的值为真,则执行“语句1”,执行完“语句1”,则跳出整个if-elif-else语句;如果“表达式1”为假,计算“表达式2”的值,如果“表达式2”的值为真,则执行“语句2”,执行完“语句2”,则跳出整个if-elif-else语句;如果“表达式2”为假,计算“表达式3”的值;如此下去,直到某个表达式的值为真才停止,如果没有一个真的表达式,且有else,则执行“else语句”。

四、if 语句示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
age = int(input("请输入年龄:"))
if age <= 0: #0 -1 -2 -3 -4 ......
print("你还没出娘胎")
elif age <= 7: #1 2 3 4 5 6 7
print("儿童")
elif age <= 17: #8 9 10 11 12 ......17
print("少年")
elif age <= 22: #18 19 20 21 22
print("成年")
elif age <= 30: #23 24 25 26 ...... 30
print("青年")
elif age <= 50: #31 32 33 34 ...... 50
print("壮年")
elif age <= 100: #51 52 53 54 ...... 100
print("老年")
elif age <= 150: #101 102 103 104 ...... 150
print("老寿星")
else:
print("老妖怪")

While循环语句

一、while 循环使用场景

  • 循环的作用就是让 指定的代码 重复的执行
  • while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行
  • 需求 —— 打印 5 遍 Hello Python
  • 思考 —— 如果要求打印 100 遍怎么办?

二、while 语句格式

1
2
3
4
5
6
7
8
9
10
11
12
#格式
while 表达式:
语句

#逻辑
当程序执行到while语句时,首先会计算表达式的值,如果表达式的值为假,结束整个while语句,如果表达式的值为真,则执行语句,执行完语句再去计算表达式的值,如果表达式的值还为真,则在执行语句...... 直到表达式的值为假才会停止,否则一直循环。

#例如:
num = 1
while num <= 5:
print("num = %d" % num)
num += 1

三、while-else 语句格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#格式
while 表达式:
语句1
else:
语句2

#逻辑
while表达式为真时,循环执行“语句1”,当语句1执行结束后,在执行else中的“语句2”;当while条件为假时;则执行else中的“语句2”,当“语句2”执行结束后,退出整个while循环。并且while如果是以break导致循环截止的,同样不会执行else下面的语句。

#总结
只有在while表达式为假时才执行else中的语句

#例如
index = 0
while index < 5:
index += 1
print(index)
if index == 3:
break
else:
print("my name is a lemon")

四、while 简单示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'''死循环:表达式永远为真的循环
例如:
while 1 + 1 == 2: #1 + 1永远等于2
print("my name is a lemon")

'''



'''用while计算1+2+3+....+100的总数
num1 = 0
num2 = 1
while num2 <= 100:
num1 += num2
num2 += 1
print("num1 = %d" % (num1)) # num1 = 5050

'''



'''将str1变量中的字符串每个字符都打印一遍,并且显示每个字符的序列号
str1 = "lemon"
index = 0
while index < len(str1):
print(index, str1[index])
index += 1

'''

五、while 语句练习

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
'''打印出所有三位数中水仙花数
num = 100
while num <= 999:
n = num // 100
u = num // 10 % 10
m = num % 10
if num == n**3 + u**3 + m**3:
print("水仙花数: %s" % (num))
num += 1

'''



'''如何将所有五位数中的回文数都列出来
num = 10000
while num <= 99999:
a = num // 10000 % 10 # 万
b = num // 1000 % 10 # 千
c = num // 10 % 10 # 十
d = num % 10 # 个
if a == d and b == c:
print("回文数 = %d" % (num))
num += 1

'''



'''从控制台输入一个数,分解质因数;例如:90=2x3x3x5
num = int(input("请输入质因数:"))
i = 2
while num != 0 and num != 1:
if num % i == 0:
print(i)
num //= i
else:
i += 1

'''



'''从控制台输入字符串,返回这个字符串中有多少个单词
str1 = input("请输入一行字符串:")
str2 = str1.strip()
index = 0
count = 0
while index < len(str2):
while str2[index] != " ":
index += 1
if index == len(str2):
break
count += 1
if index == len(str2):
break
while str2[index] == " ":
index += 1
print(count)

'''



'''输入五个数,找出第二大的值
listNum = []
num = 0
while num < 5:
val = int(input("请输入五次除了浮点数以外的数字:"))
listNum.append(val) # 将val的值追加到list列表里
num += 1
print(listNum)
listNum.sort() # 升序排序
count = listNum.count(listNum[len(listNum) - 1])
c = 0
while c < count:
listNum.pop()
c += 1
print(listNum[len(listNum) -1])

'''

For 循环语句

一、for 语句格式

1
2
3
4
5
6
7
8
9
10
#格式
for 变量名 in 集合:
语句

#逻辑:
按顺序取“集合”中的每个元素赋值给“变量”,再去执行语句。如此反复循环,直到取完“集合”中的元素截止。

#例如:
for i in [1, 2, 3, 4, 5]:
print(i)

二、range 函数方法

功能:生成数列

格式:range([start], [end], [step])

解释:start 默认是 0、step 默认是1,这两个是可有可无的,但是end是必须有的 !!

示例:

1
2
3
4
5
6
7
#例1:
for t in range(5):
print("t = %d" % (t))

#例2:
for y in range(2, 10 + 1, 2):
print("y = %d" % (y))

三、enumerate 函数方法

功能:同时生成下标和元素值

格式:enumerate([list])

示例:

1
2
for index, i in enumerate([1, 2, 3, 4, 5]):         #index, i = 下标, 元素
print("index = %d" % (index), "i = %d" % (i))

四、for 语句简单示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'''用for计算1+2+3+......+100的总核数
sum = 0
for i in range(1,100 + 1):
sum += i
print("总核数 = %d" % (sum)) # 总核数 = 5050

'''



'''从控制台输入一个数,判断是否是质数;质数:只能被1和自身整除的就是质数,其中,2就是质数,1则不是
# 用户输入数字
num = int(input("请输入一个数字: "))

# 质数大于 1
if num > 1:
# 查看因子
for i in range(2, num):
if (num % i) == 0:
print(num, "不是质数")
print(i, "乘于", num // i, "是", num)
break
else:
print(num, "是质数")

# 如果输入的数字小于或等于 1,不是质数
else:
print(num, "不是质数")

'''

break & continue 控制语句

一、break 语句

作用:跳出while和for的循环

注意:只能跳出距离他最近的那一层循环

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 例如:while
list = [10, 20, 30, 40, "lemon"]
index = 0
while index < 5:
print(list[index]) # index为list列表的下标
index += 1
if index == 4:
break


# 例如:for
for i in range(1, 10):
print(i)
if i == 5:
break # 结束这个循环

二、continue 语句

作用:跳过当前循环中的剩余语句,然后继续下一次循环

注意:只能跳过距离他最近的那一层循环

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 例如:while
num = 0
while num < 5:
num += 1
print(num)
if num == 3:
continue
print("@")
print("*")


# 例如:for
for i in range(5):
print(i)
if i == 3:
continue
print("@")
print("*")
-------------本文结束感谢您的阅读-------------