※循环结构
1、while循环结构
循环体外设定循环可执行的初始条件
书写需重复执行的代码(循环体)
设定循环条件并在循环体内设定条件改变语句
#循环5次输出该语句,缩进很重要!
count = 0
while count < 5:
print("Programming is fun !")
count += 1
#循环输出:1+2+3+...+10
i = 1
s = 0
while i <= 10:
s = s + i
i += 1
print("1 + 2 + 3 + ... + 10 = ",s)
#多次求解一元二次方程
import math
ch = ''
while ch != 'q':
a = float(input('Input a : '))
b = float(input('Input b : '))
c = float(input('Input c : '))
if a != 0:
delta = b ** 2 - 4 * a * c
if delta < 0:
print("No Solution!")
elif delta == 0:
s = -b / (2 * a)
print('The only s is :',s)
else:
root = math.sqrt(b ** 2 - 4 * a * c)
s1 = (-b + root) / (2 * a)
s2 = (-b - root) / (2 * a)
print('The solutions are : ',s1,s2)
ch = input("Quit?")
2、break和continue语句
break结束当前循环体,continue结束本次循环
3、for循环语句
for anElement in object:
#缩进语句块(循环体)
#依次遍历对象(object)中的每个元素,并赋值给anElement,然后执行循环体内语句
#计算1+2+3+...+10的值
s = 0
for i in range(11): #range函数生成0,1,....,10序列
s += i;
print("sum is : ",s)
◎range函数
Definition:range(start,stop,step) //起始,终止,步长
range(2,10) -> [2,3,4,5,6,7,8,9]
range(2,10,3) -> [2,5,8]
range(10,2,1) - > [10,9,8,7,6,5,4,3]
#求常数e
import math
e = 1
for i in range(1,10):
e += 1/math.factorial(i)
print(“e = ”,e)
e = 2.7182815255731922
另一种不需调用函数的方法
e = 1
factorial = 1
for i in range(1,100):
factorial *= i
e += 1 / factorial
print("e = ",e)
#求常数Π
pi = 0;
for i in range(1,1000000):
pi += (-1) ** (i + 1) / (2 * i - 1)
pi *= 4
print("pi = ",pi)
pi = 3.1415936535907742
另一种方法
pi = 0
sign = 1
divisor = 1
for i in range(1,1000000):
pi += 4 * sign / divisor
sign *= -1 #此处变换正负号
divisor += 2 #此处变换分母
print("pi = ",pi)
#冰雹猜想(序列)
考拉兹猜想(Collatz conjecture),又称奇偶归一猜想,3n+1猜想、冰雹猜想
对于每一个正整数,如果为奇数,则对他乘3再加1,如果为偶数,则除以2,如此循环,最终都能得到1
n = 6,6,3,10,5,16,8,4,2,1
n = int(input("please input n : "))
while n != 1:
if n % 2 == 0:
n /= 2
elif n % 2 != 0:
n = n * 3 + 1
print(n)
4、嵌套循环
#打印乘法表
for i in range(1,10):
for j in range(1,10):
print("%d*%d=%-3d" % (i,j,i*j),end="")
print("")
#鸡兔同笼问题
for chicken in range(36):
for rabbit in range(36):
if chicken * 2 + rabbit * 4 == 94 and chicken + rabbit == 35:
print("The number of chicken is ",chicken)
print("The number of rabbit is ",rabbit)
The number of chicken is 23
The number of rabbit is 12
5、while循环VS.for循环
while循环更通用,任何for循环程序都可用while循环实现
for循环适用于已知循环的范围(range),即起步值和步长;while循环适用于其他情况