python循环、递归

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python循环、递归相关的知识,希望对你有一定的参考价值。

参考技术A for 变量 in range(次数):<被执行的语句>                       变量:表示每次循环的次数,0-1之间

range(n)n表示产生0到n-1的整数序列共N个               range(m,n)  产生m到n-1的整数序列,共n-m个

循环for语句  :for 循环变量 in遍历结构:<语句体1>  else:<语句体2> 

无限循环: while条件: 语句块

while 条件:语句体1 else: 语句体2

循环保留字:break     continue

方法1:from random import random

from time import perf_counter

DARTS=1000

hits=0.0

start =perf_counter()

for i in range(1,DARTS+1):

    x,y=random(),random()

    dist=pow(x**2+y**2,0.5)

    if dist<=1.0:

        hits =hits+1

    pi=4*(hits/DARTS)

    print("圆周率是:".format(pi))

    print("运行时间是:.5fs".format(perf_counter()-start))

方法2:

pi=0

n=100

for k in range(n):

    pi += 1/pow(16,k)*(\

        4/(8*k+1)-2/(8*k+4) - \

        1/(8*k+5) - 1/(8*k+6))

print("圆周率值是:".format(pi))

def 函数名 (0个或者多个):函数体  renturn 返回值

def 函数名 (非可选参数,可选参数):函数体  renturn 返回值

参数传递的两种方式:位置传递,名称传递

科赫雪花:

import turtle

def koch(size,n):

    if n==0:

        turtle.fd(size)

    else:

        for angle in [0,60,-120,60]:

            turtle.left(angle)

            koch(size/3,n-1)

def main():

    turtle.setup(400,200)

    turtle.penup()

    turtle.pendown()

    turtle.pensize(2)

    l=3

    koch(600,l)

    turtle.right(120)

    turtle.pencolor('blue')

    koch(600,l)

    turtle.right(120)

    turtle.pencolor('red')

    koch(600,l)

    turtle.speed(3000)

    turtle.hideturtle()

main()

阶乘:

def fact(n):

    s=1

    for i in range(1,n+1):

        s*=i

    return s

c=eval(input("从键盘输入一个数字"))

print("阶乘结果",fact(c))

以上是关于python循环、递归的主要内容,如果未能解决你的问题,请参考以下文章

嵌套for循环以在Python中递归

为啥python斐波那契序列循环比递归慢?

如何在 Python 中没有任何循环(例如:for、while 等)递归 JSON 文件

Python基础-----while循环练习

Python 3.3 如何将此递归函数转换为纯 yield 循环版本?

python 循环为循环的类,它递归调用一个函数直到满足条件,然后移动到下一个函数并调用