Python——for与while循环的比较

'''
Created on 2018年12月31日

@author: zhou
'''
'''
1.在for循环中,循环控制变量的初始化和修改都放在语句头部份,形式较简洁,且特别适用
于循环次数已知的情况,比如:遍历列表,打印有规律的一组数等
2.在while循环中,循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在
循环体中,形式上不如for语句简洁,但它比较适用于循环次数不易预知的情况
'''

#问题1:请输入一个数,如果该数不是0~9的整数,提示再次输入,若是程序结束
#当循环次数不确定时,我们选择用while循环来实现
#程序1
a = input("请输入一个数:")
L = list(range(0,10))
while int(a) not in L:
    a = input("请输入一个数:")
else:
    print("End") 
    
#程序2
a = int(input("请输入一个数:"))
while a < 0 or a > 9999:
    a = int(input("请输入一个数:"))
else:
    print("End") 
    
#问题2:编写一个Python程序,输出从整数n开始一次递增2的数,直到最后一个数既是5的倍数又是7的倍数为止
#while循环适用于终止条件有多个的情况
#程序1
i = int(input("请输入一个数:"))
while (i % 5 != 0 or i % 7 != 0):
    print(i)
    i += 2
print(i)

#程序2 not (a and b) 相当于 not a or not b ; not (a or b) 相当于 not a and not b
i = int(input("请输入一个数:"))
while not (i % 5 != 0 and i % 7 != 0):
    print(i)
    i += 2
print(i)

#问题3:类 斐波那契数列
#程序
x = 1
y = 1
print(x,' ',y,end=',')
i = x + y #数列中第三个数
while i % 5 != 0 or i % 7 != 0:
    print(i,end=' ')
    x = y
    y = i
    i = x + y 
print(i,end=' ')

#问题4:检查列表中是否含有相同的元素
#demo   for语句解决
L = [1,2,3,55,47,23,68,98,4576]
found = False
for i in range(0,len(L) - 1):
    for j in range(i + 1,len(L)):
        if L[i] == L[j]:
            found = True
            break
    if found:
        break
if found:
    print("找到")
else:
    print("未找到")
    
#demo   while语句解决
L = [1,2,3,55,47,23,68,98,4576]
found = False
i = 0
while found == False and i < len(L) - 1:
    j = i + 1
    while j < len(L) and found == False:
        if L[i] == L[j]:
            found = True
        j = j + 1
    i = i + 1        
if found:
    print("找到")
else:
    print("未找到")

 

你可能感兴趣的:(Python)