Hi! I'm thinking of a random number between 1 and 100.
--- Attempt 1
Guess what number I am thinking of: 50
Too high.
--- Attempt 2
Guess what number I am thinking of: 25
Too high.
--- Attempt 3
Guess what number I am thinking of: 17
Too high.
--- Attempt 4
Guess what number I am thinking of: 9
Too low.
--- Attempt 5
Guess what number I am thinking of: 14
Too high.
--- Attempt 6
Guess what number I am thinking of: 12
Too high.
--- Attempt 7
Guess what number I am thinking of: 10
Too low.
Aw, you ran out of tries. The number was 11.
下面这个
for
循环的例子运行了五次
print
语句。
它也可以轻松地运行100或者1000000次,只需要把5改成需要循环的次数。
请注意在写法上
for
语句和
if
语句的相似性。
两者都以冒号结束,并使用缩进来标记需要被影响的语句。
for i in range(5):
print("I will not chew gum in class.")
Output:
I will not chew gum in class.
I will not chew gum in class.
I will not chew gum in class.
I will not chew gum in class.
I will not chew gum in class.
第一行中的
i
是以个记录和追踪程序熏话了多少次的变量。
它是一个新的变量并且可以被任何合法的变量名来命名。程序员通常使用
i
来做循环变量名,
因为i是
increment
(增长)的缩写。
这个变量能够帮助我们追踪循环何时结束。
range
函数控制了循环的次数。在这个例子中,循环了5次。
下面这个例子会打印“Please,”五次,和“Can I go to the mall?”仅一次。
“Can I go to the mall?”没有缩进所以它不属于
for
循环,也就不会打印直至
for
循环完成。
比如程序员可能会使用
lineNumber
,如果她正在处理一个文本文件。
如果一个程序员想要从1循环到10, 有几种方法可以做到。第一种方法是给
range
函数传递两个数字而不是一个。
第一个数字是起始值,第二个是比结尾值大1的数。
的确需要花一些练习时间去习惯
for
包含起始值但不包含结尾值的概念。
下面这个例子使用了
(1,11)
的范围,数字1到10会被打印出来。起始值1包括在内,而末尾值11并没有。
for i in range(1, 11):
print(i)
Output:
如果一个程序需要以2来计数或者其他的数量,方法很简单。也有两种途径。
最简单的办法是使用第三个数来告诉range函数它是以2来增加的。第二种办法是依然以1来增加,但是变量本身乘以2。
下面这段代码列出了这两种方法。
#两种方法去打印从2到10的偶数
for i in range(2,12,2):
print(i)
for i in range(5):
print((i + 1) * 2)
我们也可以通过给range函数一个负的步长来倒者数到0。
在下面这段代码中,是从10开始,一直倒数但不含0,每次增加的是-1。
使用这样的循环最难的地方是有时候会不小心把起始值和末尾值调换了位置。
这样的程序应该以大的数开始。而通常
for
循环都是从
range
函数里最小的值开始计数的。
for i in range(10, 0, -1):
print(i)
累积一个总的得分,一个人账户上所有的交易,用累积总计求平均数,等等。
你或许应该给这段代码做上书签,以便将来对此回来查阅。
下面的代码中,用户依次输入了五个数字,程序求出了它的累积总计。
total = 0
for i in range(5):
new_number = int(input("Enter a number: " ))
total += new_number
print("The total is: ", total)