应该这样理解:
dict.items()结果是一个列表,列表的每一个值都是一个包含两个元素的元组,
for遍历的是一个元组对象,k和v是元组里的参数。
所以(k,v)是一个整体,一下结果和你的结果一样的,
for x in d.items():print "dict[%s]="%x[0],x[1]
其中x就是(k,v),只是要取键值的话你上面的更方便。
祝你成功!
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("运行时间是{:.5f}s".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 中,函数内部修改的形参,并不会改变函数外部实参的值。以题目中例子为例,首次满足xn==xn2和yn==yn2时,自然不会执行while循环内的huisu函数,于是退出huisu(定义这一层huisu为A),也就是退出到该层嵌套函数,此时,到达一个外层huisu(定义这一层huisu为B),此时在while循环中,这个时候,xn2是85,yn2就是447。
说白了,就是A中的yn2虽然为448,但B中的yn2始终是447,再外一层的huisu两个数字就分别是85和446,以此类推。
于是乎,此时,程序会一直在B中执行while循环,不断输出同样的数字,永远不会退出。