'''
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("未找到")