开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情。
一、条件语句
1.基本语法
条件语句能够表达“如果……,则……,否则……”这样的语义,这构成了代码中的逻辑判定。
条件的逻辑基本上所有编程语言都有,但是Python中的条件判断语法和很多编程语言不同。
- if后的条件表达式,不需要(),而是用:作为结尾
- if/else符合条件后执行的代码块,使用缩进(大多数情况下是1个Tab或4个空格),而不是{}
- 对于多条件分支,用elif,而不是else if
下面给出一个例子,重点关注其语法。
# 用choice接收返回值,即输入的内容
choice = input("输入1表示为真,输入0表示为假\n")
# 注意input返回值是str类型,所以choice要与字符串1比较,而不是数字1比较
if choice == "1": # 以冒号表示判断式结束
print("True")
elif choice == '0': # 用elif而不是else if
print("False")
else: # 要加冒号表示结束
print("无效输入")
2.缩进和代码块
先来看一段代码
a = input("输入\n")
if a == '1':
print("a1")
print("b1")
if a == "1":
print('a2')
print("b2") # 注意这里没有缩进
输入为1时所有print全部运行。
当输入为0时,只有最后一个print运行,因为a1、b1、a2的打印均要在a为1的条件下;而b2由于行前少一个缩进,所以编译器并不把它当做第二个if条件成立后运行的代码块,也就是说b2无论如何都会打印,因为它不受a的值的影响,不在if条件的代码块内。
这里和其他C、C++等编程语言差异很大,其它语言的缩进都是软要求,是为了便于阅读代码,而Python中是硬性要求,乱缩进或不缩进会导致程序运行错误或编译报错。
3.空语句pass
当判断条件满足但不需要运行什么时,如果什么都不写编译会报错,这时用pass来占位,可以通过语法检查。
a = input("输入\n")
if a == "1":
pass
else:
print("hello")
二、循环语句
1.while循环
基本语法格式:
while 条件:
循环体
下面是一个简单的打印1~10的循环。
i = 1
while i <= 10: # 条件结束后以:结尾
print(i)
# i++ # Python不允许这种语法
i += 1
这里要提一下,Python中不允许i++或++i这样的语法,因为这种语法如果写的过于复杂,那么不仅不便于读者和作者理解,甚至在不同的编译器、不同的环境下结果都会不一样,所以Python禁用这样的语法来避免这些很难处理的问题。
2.for循环
for循环的基本语法格式如下,可以看到和C、C++中的循环差距还是比较大的。
for 循环变量 in 可迭代对象: # 仍以:结尾
循环体
所谓的可迭代对象指的是内部包含多个元素,能一个元素一个元素取出来赋值给循环变量的变量,听起来可能比较复杂,请看下面的例子。
for i in range(1, 10): # range(1, 10)产生1~9的整数
print(i)
这里的range是Python的内建函数,可以产生一个“可迭代对象”,包含一系列的整数,比如range(begin, end)产生的整数范围是[begin, end),注意这里的范围是左闭右开,结合上面的代码和下面的运行结果也可看出。
range还提供了第三个参数,表示步长,默认情况下是1,也可自己指定,可以为负值,即产生倒序的整数序列。
for i in range(2, 12, 2): # 步长为2
print(i)
3.continue和break
continue的作用是立即结束本次循环并进入下次循环。
break的作用是立即结束整个循环。
它们的作用与C语言中的相同,再次不再赘述。