判断结构
if-else语句
if condition:
indented block of statements
else:
indented block of statements
if语句
if-else语句的else部分可以省略。如果省略,当条件为假时,将会继续执行if语句块之后的代码。
嵌套的if-else语句
if-else语句和if语句的缩进会可以包含其他的if-else和if语句。
elif子句
if-else语句的扩展允许出现多于两种可能性的选择,其中包含了elif子句。
if-elif-else语句可以包含任意数量的elif子句。
使用if-elif-else语句的输入验证
假设一段程序要求用户输入一个数,然后使用这个数进行计算。如果用户没有输入一个数,或是输入了一个不合适的数,程序将会崩溃。返回布尔值的isdigit方法可以用来防止这样的崩溃。
True和False
每一个对象都有一个真值与其相关联,因此都可以作为条件。当数字用作条件时,0会被赋值为False,同时其他的数字会被赋值为True。显然,对象True和False的值分别为True和False。用作条件的空字符串、列表和元组代表了False,否则,值为True。
While循环
while循环
while condition
intented block of statements
break
break语句是导致从循环体任意位置退出的语句。
在一个while循环体中执行时,循环马上终止。break语句通常出现在if语句的里面。
continue
在一个while循环体中执行时,当前循环终止,程序跳转到循环的头部。continue语句通常出现在if语句的里面。
创建菜单
访问菜单是交互式程序的基础任务之一。用户做出选择直到他决定退出为止。
无限循环
请注意要避免无限循环,也就是循环不会停止。
for循环
for var in sequence:
indented bloak of statements
等差数列的循环遍历
range函数可以用来产生一个等差数列。如果m,n是整数,并且m
range函数的步长值
range函数可以产生步长不为一的整数序列。如果m,n,s是整数,并且m
for循环的嵌套
星号三角形
numberRows=int(input(“enter a number from 1 to 20: “))
for i in range(numberRows):
for j in range(i+1):
print(“*”,end=”“)
print()
enter a number from 1 to 20: 5
*
**
字符串的字符的循环遍历
for ch in str1:
indented bloak of statements
遍历列表或元组元素的循环遍历
for item in listOrTuple:
indented bloak of statements
文本文件的行循环遍历
infile = open(‘filename.txt’,’r’)
for line in infile:
indented bloak of statements
infile.close()
pass语句
for循环头后面必须紧跟一个至少有一条语句的缩进语句块。然而,有时只是希望循环遍历一个序列而并不做任何事情。在这种情况下,应当使用pass语句。pass语句是一个“什么都不做”的占位符语句。
pass语句可以在任意组合语句中使用。
显示文件中的最后一行。for遍历整个文件,line的值将是文件的最后一行。
rstrip()移除了文本文件的换行符。
infile = open(‘filename.txt’,’r’)
for line in infile:
pass
print(line.rstrip())
infile.close()
使用文本文件的内容创建列表
有时对于分析文本文件中的数据,最好的方法是将数据放进一个列表,然后使用列表函数和方法。
将文本文件中的内容放进列表中一种方法:
dataList=[]
infile = open(‘filename.txt’,’r’)
for line in infile:
dataList.append(line.strip())
infile.close()
一种更有效率的方式:
infile = open(‘filename.txt’,’r’)
dataList=[ line.strip() for line in infile]
infile.close()
如果文本文件中的只包含数字,那么列表中的元素将可以由字符串转换为数字。
下面的代码不能起到作用:
for item in dataList:
item = eval(item)
可以使用:
for i in range(len(dataList)):
dataList[i] = eval(dataList[i])
一种更有效率的方式:
infile = open(‘filename.txt’,’r’)
dataList=[ eval(line) for line in infile]
infile.close()