💖作者:小树苗渴望变成参天大树🎈
🎉作者宣言:认真写好每一篇博客💤
🎊作者gitee:gitee✨
💞作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法🎄
如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧!
文章目录
前言
通过上一篇的基础语法1,我们发现python在使用起来非常的快速,不需要像C++/Java需要先写一个框架,而python是直接拿起来使用,所以这也是别人说python好上手的原因之一,后面等给大家介绍更多关于python的知识点时候,就会发现python即高效有好用,今天这篇博客给大家讲解新的语法,涉及到循环判断方面的知识,这篇主要不是让那个大家搞懂循环和判断是什么,相信大家在学习其他语言的时候对循环已经了如指掌了,今天主要讲解的是语法层面的,希望大家认真学起来。
一、顺序语句
默认情况下, Python 的代码执行顺序是按照从上到下的顺序, 依次执行的。所以我们在学习函数语句的时候,就会发现为什么函数需要先定义在调用。因为程序按照顺序执行,你先调用就会找到定义的函数,执行报错了,而不是去查看整个程序里面有没有函数的定义。
print(1)
print(2)
print(3)
执行结果一定为 “123”, 而不会出现 “321” 或者 “132” 等. 这种按照顺序执行的代码, 我们称为 顺序语句
好处:
- 这个顺序是很关键的. 编程是一件明确无歧义的事情. 安排好任务的顺序, 计算机才能够正确的进行
执行. - 就好像人生的顺序, 是上学, 工作, 结婚, 生子. 一旦这里的顺序乱了, 就很麻烦
二、条件语句(分支语句)
条件语句我们在所有语言里面都学习过,条件语句能够表达 “如果 … 否则 …” 这样的语义. 这构成了计算机中基础的 逻辑判定
2.1语法格式
python中的条件语句和其他语言表示的意思是一样的只是语法优点不一样。
(1)语法格式
第一种
if expression:
do_something1
do_something2
next_something
- 如果 expression 值为 True, 则执行 do_something1, do_something2, next_something
- 如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2
第二种
if expression:
do_something1
else:
do_something2
- 如果 expression 值为 True, 则执行 do_something1
- 如果 expression 值为 False, 则执行 do_something2
第三种
if expression1:
do_something1
elif expression2:
do_something2
else:
do_something3
- 如果 expression1 值为 True, 则执行 do_something1
- 如果 expression1 值为 False, 并且 expression2 为 True 则执行 do_something2
- 如果 expression1 值为 False, 并且 expression2 为 False 则执行 do_something3
注意: Python中的条件语句写法, 和很多编程语言不太一样.
- if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾.
- if / else 命中条件后要执行的 “语句块”, 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
- 对于多条件分支, 不是写作 else if, 而是 elif (合体了).
我们发现条件语句没有{}来表示哪里是判断内部的语句,这样程序怎么知道哪些是判断内部的语句中,这时候就需要规范的使用我们的缩进和代码块了
2.2缩进和代码块
在学习其他语言的时候我们有代码块来断定哪些是判断内部需要执行的语句,但是我们为了代码的美观,我们也采用的缩进式,但是今天python中的缩进是必须要有的,而缩进也叫代码块,代码块是一组放在一起执行的代码。不同级别的缩进,程序的执行效果是不一样的。
我们发现不同的缩进确实有不同的效果。
- 在第一个 中, print(“world”) 有一级缩进, 这个语句属于 if 内的代码块, 意味着条件成立, 才执行, 条件
不成立, 则不执行. - 在第二个中, print(“world”) 没有缩进, 这个语句是 if 外部的代码, 不属于 if 内部的代码块. 意味着条件无论是否成立, 都会执行.
另外, 代码块内部还可以嵌套代码块.
a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")
if a == "1":
if b == "2":
print("hello")
print("world")
print("python")
在这个代码中,
print(“hello”) 具有两级缩进, 属于 if b == “2” 条件成立的代码块.
print(“world”) 具有一级缩进, 属于 if a == “1” 条件成立的代码块.
print(“python”) 没有缩进, 无论上述两个条件是否成立, 该语句都会执行
基于缩进的方式表示代码块, 带来的好处就是强制要求程序猿要写明确的缩进, 来明确代码之间的相对关系. 如果缩进书写的不对, 则直接报错.
同时, 带来的坏处就是, 如果缩进层次比较多, 就容易分不清楚某个语句属于哪个层级:例如:
if a == 1:
if b == 2:
if c == 3:
if d == 4:
if e == 5:
if f == 6:
if g == 7:
print("hello")
print("1")
print("2")
2.3练习题
(1) 输入一个整数, 判定是否是奇数
a=int(input("请输入一个整数:"))
if a%2==1:
print("是奇数")
else:
print("是偶数")
(2) 输入一个整数, 判定是正数还是负数
a=int(input("请输入一个整数:"))
if a>0:
print("是正数")
elif a<0:
print("是负数数")
else:
print("是0")
(3) 判定年份是否是闰年
year=int(input("请输入年份:"))
if year%100==0:
#判断世纪闰年
if year%400==0:
print("闰年")
else:
print("平年")
else:
#判断普通闰年
if year%4==0:
print("闰年")
else:
print("平年")
还有一种写法,我们需要使用到上一篇学习到的逻辑或or来实现:
year=int(input("请输入年份:"))
if (year%100!=0 and year%4==0) or year%400==0:
print("闰年")
else:
print("平年")
2.4 空语句
代码示例: 输入一个数字, 如果数字为 1, 则打印 hello
a = int(input("请输入一个整数:"))
if a == 1:
print("hello")
这个代码也可以等价写成
a = int(input("请输入一个整数:"))
if a != 1:
pass
else:
print("hello")
其中 pass 表示 空语句, 并不会对程序的执行有任何影响, 只是占个位置, 保持 Python 语法格式符合要求.
如果代码写作下面这样会直接报错。
a = int(input("请输入一个整数:"))
if a != 1:
else:
print("hello")
三、循环语句
有些操作需要反复去执行的,这种就需要使用循环,在python中只有两种循环一个while
,一个for
,在C语言中还有switch,do while ,goto,这些在python中都给取消了,觉得有点鸡肋了。所以接下来我们来着重介绍一下python当中这两个循环语句吧。
3.1while循环
基本语法格式
while 条件:
循环体
·条件为真, 则执行循环体代码.
·条件为假, 则结束循环.
示例:
打印 1-10 的整数
i=1
while i<=10:
print(i)
i+=1
计算 1-100 的和
Sum=0
i=1
while i<=100:
Sum+=i
i+=1
print(Sum)
计算 5 的阶乘
factor=1
i=1
while i<=5:
factor*=i
i+=1
print(factor)
求 1! + 2! + 3! + 4! + 5!
thesum=0
i=1
while i<=5:
thefactor=1
n=1
while n<=i:
thefactor*=n
n+=1
thesum+=thefactor
i+=1
print(thesum)
这个程序用到了两重循环.
也就是在循环语句中也可以套循环.
3.2for循环
基本语法格式
for 循环变量 in 可迭代对象://
循环体
可迭代对象是python1中的内建函数,这个函数对象中包含了一系统的整数
注意:
- python 的 for 和其他语言不同, 没有 “初始化语句”, “循环条件判定语句”, “循环变量更新语句”, 而是更加简单
- 所谓的 “可迭代对象”, 指的是 "内部包含多个元素, 能一个一个把元素取出来的特殊变量
打印 1-10
for i in range(1,11):
print(i)
使用 range 函数, 能够生成一个可迭代对象. 生成的范围是 [1, 11), 也就是 [1, 10],是一个左闭右开的对象。
打印 2, 4, 6, 8, 10
for i in range(2,11,2):
print(i)
通过 range 的第三个参数, 可以指定迭代时候的 “步长”. 也就是一次让循环变量加几.
打印 10-1
for i in range(10, 0, -1):
print(i)
range 的 步长 也可以设定成负数.
3.3continue和break的使用
和其他语言表达的意思是一模一样的。
continue 表示结束这次循环, 进入下次循环
代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了一只虫,不吃,在吃剩下来的
break 表示结束整个循环
代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了半只虫,剩下来的也不吃了
代码示例:: 输入若干个数字, 求平均值. 使用 “分号” 作为结尾.
Sum=0
count=0
while True:
a=input("请输入数字:")
if a==';':
break
Sum+=int(a)
count+=1
print(Sum/count)
注意:我们python在命名的时候可能会和内建函数产生冲突:
我们的python内部有一个函数叫做sum,所以出现了黄色波浪线,表示警告,程序执行可能会正确也可能不正确,所以我们有两种修改的方式,第一种是重命名,第二种类型与给变量名加一个类型声明
对于第一种重命名只有一处就比较好改,如果多处需要修改就比较麻烦,所以这里给大家推荐一种简单的好办法,光标点在要修改的变量名上,按住shift+F6,统一进行修改。
四、结语
循环和判断在我们的程序中有非常重要的作用,希望大家下来多多练习,后面也会给大家写一个综合案例,让大家可以更好的去练习代码。我们下一篇讲解函数等相关知识。