Python自学(三)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/vivien1997/article/details/95972152

循环结构

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循环适用于其他情况

猜你喜欢

转载自blog.csdn.net/vivien1997/article/details/95972152