python求助
1111,num=int(input("输入一个整数:"))
while True:
if num%2==0:
num1=int(num/2)
print(num,"/2","=",num1)
num=num1
elif num%2==1:
num1=num*3+1
print(num, "*3+1=", num1)
num = num1
if num==1:
break
2222,
num=int(input("输入一个整数:"))
while True:
if num%2==0:
num1=int(num/2)
print(num,"/2","=",num1)
num=num1
elif num%2==1:
num1=num*3+1
print(num, "*3+1=", num1)
num = num1
elif num==1:
break
为什么1和2例子中,搞成elif就结果不同?是break跳出的原因吗?
在第一个例子中,判断 num==1 的语句是在 if 和 elif 之外的,所以当 num 等于 1 时,不论前面的条件是否成立,都会执行 break 语句跳出循环。
而在第二个例子中,elif 条件语句中的 num==1 判断语句是前面的 if 的最后一个分支,但是前面的分支已经囊括了所有的情况,所以最后一个分支永远不会得到执行
因此,在第一个例子中,只要 num 等于 1,程序就会 break跳出循环;而在第二个例子中,则永远不会跳出循环 1的if...elif是一个判断语句,if 是一个语句。每次执行完上面那个if...elif语句之后,还会去执行下面那个if
2if..elif...elif是一个判断语句,同一循环执行其中一个条件其他两个就不会执行
两个的区别就是:第一个有两个判断语句if...elif和if,第二个只有一个判断语句if..elif...elif
页:
[1]