1.4 条件与循环
在应用场景中我们经常需要使用
条件的判断,来筛选需要的数据,以及通过筛选来完成重复的步骤,也就是所谓的条件和循环。
文章目录
1.4.1 if
if语句是我们最常用的条件判断语句
1.单条件判断
print("请输入您的年龄",end="")
x = input()
if int(x) > 18:
print("已成年,可以进入")
请输入您的年龄25
已成年,可以进入
2.双分支判断
print("请输入您的年龄", end="")
x = input()
if int(x) > 18:
print("已成年,可以进入")
else:
print("未成年,不允许进入")
请输入您的年龄14
未成年,不允许进入
简洁版的 三目运算符
a if a > b else b
下面是例子
a = input("请输入a的值:")
b = input("请输入b的值:")
_max = a if a > b else b
print("最大数是%d" % int(_max))
3.多分支判断
print("Hello, please input your destination: ", end="")
des = input()
if des == "A":
print("Transporting to A")
elif des == "B":
print("Transporting to B")
elif des == "C":
print("Transporting to C")
else:
print("no destination was found here,please try again")
else if 可以在一个判断里多次使用,但是else 只能用一次。
4.条件嵌套
print("请问带学生牌了吗?", end="")
card = input()
if card == "带了":
print("请问带笔记本以及其他内容了吗?")
nes_stuff = input()
if nes_stuff == "带了":
print("可以进去")
else:
print("不可以进去")
else:
print("不可以进去")
1.4.2 while和for循环,break 与continue
1.单while循环
我们做一个查询一串字符串里有多少个x的功能。
print("请输入一串单词或者字母串")
x = input()
len01 = len(x)
i = 0
n = 0
while i < len01:
if x[i] == "x":
n += 1
i += 1
print("总共有%d个x字母" % n)
输出如下:
请输入一串单词或者字母串
xhuhxiuhxiuhxhuhxiuhuix
总共有6个x字母
2.break
符合条件时跳出当前循环,且不会执行else里的语句
print("请输入一串单词或者字母串")
x = input()
len01 = len(x)
i = 0
n = 0
while i < len01:
if x[i] == "x":
n += 1
i += 1
if i > 20:
break
# else:
# print("超出20个限制,20个以内有%d个x字母" % n)
# 因为有break,所以循环里的执行打断跳出后也不会执行else里的语句
print("总共有%d个x字母,超出20位以上的没有计入" % n)
3.continue
跳过这次循环,仍旧继续循环
x = input("请输入一个数字,计算从1到这个数字的所有个位数不为0的偶数数字 : ")
x = int(x)
n = 0
x_max = 0
while n <= x:
x_max = x_max + n
n += 2
if n % 10 == 0:
n += 2
continue
print("合计为%d" % x_max)
4.pass
5.while else
不同于if else,如果循环里没有break,则不仅会进行循环里的语句,还会执行else的。如果有break,则跳出后不会执行。
print("请输入一串单词或者字母串")
x = input()
len01 = len(x)
i = 0
n = 0
while i < len01:
if x[i] == "x":
n += 1
i += 1
if i > 20:
break
# print("总共有%d个x字母" % n)
else:
print("超出20个限制,20个以内有%d个x字母" % n)
# 因为有break,所以循环里的执行打断跳出后也不会执行else里的语句
6.for 循环
x = input("输入一串随机字母串: ")
y = input("输入一个你想知道的字母数量的字母: ")
num = 0
i = 0
len01 = len(x)
for i in range(len01):
# range(起始,结束,步长) 起始默认是0,步长默认是1。range是左闭右开的。
if x[i] == y:
num += 1
print("在你输入的字母串里含有%d个字母%s" % (num, y))
以下是一个相对复杂的应用,在输入的数组里排序出来从小到大的列表
num_list = input("请输入一串数组(每个数字用空格隔开), ")
li = num_list.split(" ")
m = len(li)
i = 0
com = 0
while i < m:
j = 1
while j < m-i:
if li[j-1] > li[j]:
com = li[j-1]
li[j-1] = li[j]
li[j] = com
j += 1
i += 1
print(li)