前面两篇讲述了数据类型和运算符,就像是语言中的词汇学习完了,现在开始是语言逻辑部分。
(一)表达式和语句
(1)表达式
表达式是值,变量和操作符的组合。单独一个值是表达式,单独一个变量也是表达式。
a = 1
b = 2
print(1)
print(a)
print(a+b)
print(a+b+1)
(2)语句
语句是一段可执行的代码,常见的有:赋值语句,if语句,while语句,for语句,return,import等
赋值语句:也可以叫做赋值表达式
特点:
- 变量名在首次赋值的时候会被创建
- 变量名引用先必须赋值
a,b = 1,2 # 序列赋值,等价于(a,b) = (1,2)
a,b,c = "abc" # 高级赋值
a,*b,c = "abcd" # 扩展解包赋值,可以将多出来的字符按照一定规则分给带 * 的变量
a=b=c=3 # 多目标赋值
if条件判断语句:我们在编写代码的过程中,肯定会遇到不同场景不同处理的情况。于是python提供了if语句。表示为,如果……,就怎么样。if 后面如果是真的,就执行,结束后面的判断;如果是假的就往下走
代码格式:
grades = 60
# python程序指定任何非零或者非空(none)的值都为True。
# 0或者None为False。
# 判断对真后,执行有缩进的代码块。并不再进行后面的判断了。
# 如果判断为假,跳过缩进代码块,进入下一个if判断,下一个 if 叫做 elif
# 如果都没有True出现,最后会进入到else中,执行缩进代码。
# 格式一:
# 这里的grades是大于零的,不是0或者none,所以判断为True
if grades:
print("成绩有输入!") # 等价于if grades: print("成绩有输入!");但是这种写法,只能用于单行代码。
# 格式二:
# 判断成绩是否在[0,100]区间,如果是,则进入if下面的缩进代码块执行该代码块
# 否则进入else中执行下面的缩进代码块
if (grades>0) and (grades<=100):
print("成绩输入合法!")
else:
print("成绩输入不合法!")
#格式三:
if grades<60:
print("不及格!")# 这里必须要有缩进,表示第一个判断通过会执行的语句
elif (grades>=60) and (grades<90):
print("良好!")
else:
print("优秀!")
注意:可能有人学过c,里面会有swtich,但是python并不支持!
并且,我们在使用and和or这种逻辑运算符(也叫布尔表达式,两边必须是bool值)的时候,采用短路规则。意思就是如果Flase and True。后面那个true他压根就不会去考虑,因为false和任何值进行与操作都是false。同样 True or (a == 2),任意值或上true都是true,他不会去看后面的那个表达式,甚至有错误都不会去看。
# 3/0本该报错(除零错误),但是由于短路规则,不会报错。
if (1 == 2) and (3/0):
print("yes")
else:
print("no")
# 3/0本该报错(除零错误),但是由于短路规则,不会报错。
if (1 == 1) or (3/0):
print("yes")
else:
print("no")
if 语句可以嵌套使用:
grades = 60
if (grades>0) and (grades<=100):
print("成绩输入合法!")
#这个代码块里面还可以进行判断,逻辑和原来的一样。
if grades<60:
print("不及格!")# 这里必须要有缩进,表示第一个判断通过会执行的语句
elif (grades>=60) and (grades<90):
print("良好!")
else:
print("优秀!")
else:
print("成绩输入不合法!")
补充一个小知识点:if (grades>0) and (grades<=100):
,它是先计算括号里面的内容,在进行and或or运算。因为>, <, ==,>=, <=, !=, ()等的运算优先级高。就是和数学中的先算乘法,再算加法是同一个意思。乘法有更高的优先级。
循环语句:需要执行重复的代码n次,我们就可以使用循环语句。
- while循环语句,if循环语句。
while循环语句代码格式:
# while(判断条件):如果满足判断条件,或者说括号里的内容为真,就会执行下面的代码块。
# 执行完一边代码块之后,再判断条件是否为真,如果依然是while True 一直循环下去,
# 直到while False ,跳出循环。
# 下面这个叫做永真循环,也叫做死循环,他会一直输出123,直到内存写满。
while True :
print(123) # 这种写法也可以写成:while True :print(123) # 仅限于单行代码
# 输出三次hello
count = 0
while count<3 :
print("hello")
count+=1 # 等价于count = count+1
补充一个不重要的知识点:每一个while循环:,也可以配备一个else:执行完while循环后,会进入到else中执行代码。平时较少用到,可以不写。
count = 0
while count<3 :
print("hello")
count+=1 # 等价于count = count+1
else:
print("End of the while loop")
for循环语句代码格式:
# for 循环用于遍历序列:
a = [1,2,3,4,5,1,2,3,4,5]
for i in a:
print(i) # 这里不是输出下标,而是a里面的值:1,2,3,4,5,1,2,3,4,5
常用写法:
print(range(10)) # 用于制造一个[0,10)的序列,步长默认为1(每个数值相差1)
print(range(2,10)) # 用于制造一个[2,10)的序列,步长默认为1(每个数值相差1)
print(range(2,10,2)) # 用于制造一个[2,10)的序列,步长为2(每个数值相差2)=>[2,4,6,8]
for i in range(10):
print(i) # 输出0-9,说明循环了十次。
# 上面的语句也可以写成:for i in range(10):print(i) # 仅限单行代码
补充一个不重要的知识点:每一个for循环:,也可以配备一个else:执行完for循环后,会进入到else中执行代码。平时较少用到,可以不写。
for i in range(10):
print(i) # 输出0-9,说明循环了十次。
else:
print("End of for loop")
循环嵌套:
python支持循环里面有循环,循环里面有条件判断。循环和判断可以随意嵌套。
# 可以猜猜看是什么结果, 只是想告诉你,这些东西随意嵌套就好了。而且这里涉及了前面的很多内容,检查作业的时候到了。
for i in range(5):
for j in range(10):
print("*",end='')
while j==9:
if j==9:
print()
j+=1
你猜对了吗?
最后来讲两个语句:break,continue
break:用来终止所在循环,直接打破该循环(一层)
a = 0
while a<=8:
if a == 5:
break # 试试注释掉会发生什么。
print(a)
a+=1
continue:用来跳出所在循环的本次循环。
for i in range(5):
for j in range(10):
if j >= 1:
continue # 试试注释掉会发生什么。
print("*")
print()