一、if-elif-else
由于习惯了写C++,所以刚上手Python的时候很容易忘记写冒号QAQ
if 表达式:
...
elif 表达式:
...
else:
...
举个例子:
number = 23
if True:
print("True")
guess = int(input("Enter an integer: "))
if guess == number:
print('yes')
elif guess < number:
print('lower')
else:
print('higher')
print('Done')
运行结果:
input()函数以字符串的形式来获取输入内容。int将这个字符串转换成一个整数。int是一个类。
Python中没有switch语句。
二、while
while语句有else语句可以作为可选选项。
number = 23
running = True
while running:
guess = int(input("Enter an integer:"))
if guess == number:
print("Yes")
running = False
elif guess < number:
print("lower")
else:
print("Higher")
else:
print("THe loop is over")
运行结果:
三、for...in...(else...)
for..in 会在一些列对象上进行迭代。即会遍历序列中的每一个项目。
for i in range(1, 5): # C : for(int i=0; i<5; i++)
print(i)
else:
print("The loop is over")
运行结果:
通过内置的range函数生成一个数字序列,从第一个形参开始,到第二个形参结束(不包括第二个形参)。默认情况下,range以步长为1递增。range第三个形参为步长。如 range(1, 5, 2) ,则输出[1, 3]。需要注意的是,range()每次只会生成一个数字。如果希望获得完整的数字列表,要在使用range()时调用list(),如list(range(5))返回[0, 1, 2, 3, 4]。
for i in range(1, 5) 等价与 for i in [1, 2, 3, 4]。
else部分可选,如果循环包含else,会在for循环结束后执行,除非程序遇到break语句。
C/C++ 中for (int i = 0; i < 5; i++) 等价于Python中for i in range(0,5) 。
四、break语句
如果用break中断哪里一个for或while循环,任何相应循环中的else块都不会被执行。
while True:
s = input("Enter something:")
if s == "quit":
break
print("Length of the string is", len(s))
print("Done")
运行结果:
五、continue语句
continue语句可以跳过当前循环快的剩余语句,并继续该循环的下一次迭代。
while True:
s = input("Enter something:")
if s == "quit":
break
if len(s) < 3:
print("Too small")
continue
print("Input is of succicient length")
运行结果: