【python】—— 基础语法(二)

简介: 【python】—— 基础语法(二)

序言:

在上期,我们已经对python进行了初步的学习和了解。本期,我将继续带领大家学习关于python的基本知识!!


(一)顺序语句

默认情况下, Python 的代码执行顺序是按照从上到下的顺序, 依次执行的.

  • 执行结果一定为 "111 222 333", 而不会出现 "321" 或者 "132" 等. 这种按照顺序执行的代码, 我们称为 顺序语句.

这个顺序是很关键的. 编程是一件明确无歧义的事情. 安排好任务的顺序, 计算机才能够正确的进行 执行.

就好像人生的顺序, 是上学, 工作, 结婚, 生子. 一旦这里的顺序乱了, 就很麻烦.

但是如果仅有条件语句的话是远远不够的,对于一些复杂的情况时得不到处理的。因此,又出现了许多其他的语句。


(二)条件语句

1、什么是条件语句

条件语句能够表达 "如果 ... 否则 ..." 这样的语义. 这构成了计算机中基础的 逻辑判定.

条件语句 也叫做 分支语句, 表示了接下来的逻辑可能有几种走向.

一个典型的例子:

如果丘处机没有路过牛家村,

  • 1. 那么金兵不会死在郭, 杨两家手上
  • 2. 郭, 杨两家就不会流亡北方
  • 3. 郭夫人就不会去到大漠, 完颜洪烈就不会遇到包惜弱
  • 4. 郭靖就不会和江南七怪救了铁木真
  • 5. 蒙古就不会统一
  • 6. 蒙古铁骑就不会西征
  • 7. 欧洲就不会出现火药, 也就不会出现文艺复兴, 大航海.
  • 8. 大炮就不会从欧洲传到日本, 日本得不到统一
  • 9. 完颜洪烈就不会全力战, 金国内乱
  • 10. 宋朝不会灭亡, 并诞生出资本主义. 中国成为最发达的国家.
  • 例如,以我作为学生的程序猿为例:

如果 我认真敲代码  

  • 我就很容易找到工作

否则  

  • 我就容易毕业就失业

其中 "我认真敲代码" 称为 条件.

  1. 如果条件成立(条件为真), 则会出现 "我就很容易找到工作" 这个情况;
  2. 如果条件不成立(条件为假), 则会出现 "我就容易毕业就失业".

💨 当然, 同样的逻辑, 还可以反着表达

如果 我选择躺平摆烂  

  • 我就容易毕业就失业

否则  

  • 我就很容易找到工作
  • 虽然结构变了, 但是整体表达的语义是等价的.

💨: 亲爱的小伙伴们, 你们是选择认真敲代码, 还是躺平摆烂呢?

2、语法格式

在Python中,条件语句用来根据给定的条件判断来执行不同的代码块。Python提供了if、elif和else关键字来构建条件语句,下面对其进行详解:

(1) if: if语句用于检查一个条件是否为真,如果条件为真,则执行if代码块中的内容。if语句的基本语法如下:

if expression:
 do_something1
 do_something2
next_something
  1. 如果 expression 值为 True, 则执行 do_something1, do_something2, next_something
  2. 如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2

(2)if-else: if-else语句用于在条件为True时执行一个代码块,而在条件为False时执行另一个代码块。它的基本语法如下:

if expression:
 do_something1
else:
 do_something2
  1. 如果 expression 值为 True, 则执行 do_something1
  2. 如果 expression 值为 False, 则执行 do_something2

(3)if-elif-else: if-elif-else语句用于在多个条件之间做出选择。它可以包含多个elif子句来检查额外的条件,并且最后可以有一个可选的else子句来覆盖所有未满足的条件。它的基本语法如下:

if expression1:
 do_something1
elif expression2:
 do_something2
else:
 do_something3
  1. 如果 expression1 值为 True, 则执行 do_something1
  2. 如果 expression1 值为 False, 并且 expression2 为 True 则执行 do_something2
  3. 如果 expression1 值为 False, 并且 expression2 为 False 则执行 do_something3

【注意事项】

1️⃣ 在Python中,条件表达式的结果可以是任何可以被解释为布尔值的类型,例如布尔值True或False、整数、浮点数、字符串、列表、元组等,只要它们在条件判断时被解释为True或False即可。

2️⃣ Python中的条件语句写法, 和很多编程语言不太一样.

  1. if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾.
  2. if / else 命中条件后要执行的 "语句块", 使用 缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
  3. 对于多条件分支, 不是写作 else if, 而是 elif (合体了).

💨示例: 输入 1 表示愿意认真学习, 输入 2 表示躺平摆烂.

choice = input("输入 1 表示认真学习, 输入 2 表示躺平摆烂: ")
if choice == "1":
    print("你会找到好工作!")
elif choice == "2":
    print("你可能毕业就失业了!")
else:
    print("你的输入有误!")

【分析】

3、缩进和代码块

在Python中,缩进是非常重要的,它用于表示代码块的层次结构。Python使用缩进来确定语句的组织方式和执行顺序,而不是使用大括号或关键字来表示代码块的开始和结束。

代码块是一组相关的语句,例如在条件语句中,一个代码块包含了在特定条件下需要执行的一组语句。

以下是关于Python条件语句中缩进和代码块的一些重要注意事项:

1️⃣ 缩进量:通常情况下,每个缩进级别由四个空格组成。不同的编辑器设置可能会有所不同,但在Python中必须保持一致。

格式如下:

if condition:

   statement1  # 属于 if 代码块,缩进一级

   statement2  # 属于 if 代码块,缩进一级

statement3  # 不属于 if 代码块,与 if 同级

代码1:

a = input("请输入一个整数: ")
if a == "1":
    print("hello")
    print("world")
  • 输出:

代码2:

a = input("请输入一个整数: ")
if a == "1":
    print("hello")
print("world")
  • 输出:

注意上述代码的区别

  1. 在代码1 中, print("world") 有一级缩进, 这个语句属于 if 内的代码块, 意味着条件成立, 才执行, 条件 不成立, 则不执行.
  2. 在代码2 中, print("world") 没有缩进, 这个语句是 if 外部的代码, 不属于 if 内部的代码块. 意味着条件 无论是否成立, 都会执行.

基于缩进的方式表示代码块, 带来的好处就是强制要求程序猿要写明确的缩进, 来明确代码之间的相对关 系. 如果缩进书写的不对, 则直接报错

像 C++ / Java 这些语言, 即使完全不写缩进, 语法也不会报错. 代码可读性就比较差.

同时, 带来的坏处就是, 如果缩进层次比较多, 就容易分不清楚某个语句属于哪个层级

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")

因此, 就有了 "写 Python 需要自备游标卡尺" 这个梗


2️⃣ 代码块:代码块是一组具有相同缩进级别的语句。在条件语句中,if、elif、else后面的冒号(:)标志着一个代码块的开始。

格式如下:

if condition1:

  • statement1 # 属于 if 代码块
  • statement2 # 属于 if 代码块

elif condition2:

  • statement3 # 属于 elif 代码块
  • statement4 # 属于 elif 代码块

else:

  • statement5 # 属于 else 代码块
  • statement6 # 属于 else 代码块

代码:

a = input("请输入一个整数: ")
if a == "1":
    print("aaaa")
    print("bbbb")
if a == "2":
    print("cccc")
    print("dddd")
else:
    print("eeee")

3️⃣ 嵌套代码块:在一个代码块内部,可以有更深层次的代码块。只需在内部的代码块中增加额外的缩进即可。

格式如下:

if condition1:
   statement1  # 属于外部 if 代码块
   if condition2:
       statement2  # 属于内部 if 代码块
   else:
       statement3  # 属于内部 else 代码块
else:
   statement4  # 属于外部 else 代码块

 

代码:

a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")
if a == "1":
    if b == "2":
        print("hello")
    print("world")
print("python")

【分析】

在这个代码中:

  1. print("hello") 具有两级缩进, 属于 if b == "2" 条件成立的代码块.
  2. print("world") 具有一级缩进, 属于 if a == "1" 条件成立的代码块.
  3. print("python") 没有缩进, 无论上述两个条件是否成立, 该语句都会执行.

输出:

总结起来,Python中的缩进和代码块用于指示条件语句中的层次结构和执行顺序。缩进量决定了代码块之间的关系,而代码块是根据条件语句的各个部分进行分组的。通过正确的缩进和代码块组织,可以使代码更清晰、易读和易于维护。

练习

  • (1) 输入一个整数, 判定是否是奇数
a = int(input("请输入一个整数: "))
if a % 2 == 0:
 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 and year % 4 == 0) or year % 400:
    print("闰年")
else:
    print("平年")

4、空语句 pass

在Python中,pass是一个空语句,可以用于占位或作为一个占位符。它不执行任何操作,只是简单地跳过当前的代码块,不会产生任何影响。

pass的主要作用是在未完整实现代码时提供一个占位符。例如,当你正在编写一个函数或一个类,但还没有完成它们的主体部分时,可以使用pass语句来暂时跳过这些部分,使代码能够正常运行,而不会引发语法错误。

💨 代码示例: 输入一个数字, 如果数字为 1, 则打印 hello

a = int(input("请输入一个整数:"))
if a == 1:
    print("hello")

上述代码也可以等价写成

a = int(input("请输入一个整数:"))
if a != 1:
 pass
else:
    print("hello")

如果代码写作:

a = int(input("请输入一个整数:"))

if a != 1:


else:

       print("hello")

输出显示

  • 程序是不符合 Python 语法的, 会直接报错.

【小结】

总结起来,pass是Python中的一个空语句,它不进行任何操作,仅用于占位或作为一个占位符。通过使用pass语句,可以在未完整实现代码的情况下,使程序能够正常运行,并且保持代码的完整性。一旦具体实现完成,可以将pass语句替换为实际的代码逻辑。


 

(三)循环语句

有些操作是需要反复执行的. 这种就需要使用循环.

1、while 循环

在Python中,while 循环用于反复执行一段代码块,直到给定条件不再满足为止。它的基本语法如下:

while 条件:  

        循环体

  • 这里的【条件】是一个布尔表达式,当条件为真时,循环会一直执行代码块;
  • 每次循环开始前,都会检查条件是否满足。如果条件为假,则退出循环,继续执行后续的代码。

💨 代码示例: 打印 1-10 的整数

num = 1
while num <= 10:
    print(num)
    num += 1

【分析】

  1. 在这个例子中,首先定义了一个初始值为1的计数器num;
  2. 然后,while循环会检查num是否小于等于10。只要条件满足,循环会执行打印num的值,并将num增加1。这个过程会一直重复直到num不再小于10为止。

💨 代码示例: 计算 1-100 的和

num = 1
sum = 0
while num<=100:
    sum+=num
    num+=1
print(sum)

输出显示:

 

💨  代码示例: 计算 5 的阶乘

res = 1
n = 1
while n <= 5:
    res *= n
    n += 1
print(res)

输出显示:

 

💨 代码示例: 求 1! + 2! + 3! + 4! + 5!

num = 1
sum = 0
while num <= 5:
    factorResult = 1
    i = 1
    while i <= num:
        factorResult *= i
        i += 1
    sum += factorResult
    num += 1
print(sum)

输出显示:

  • 这个程序用到了两重循环. 也就是在循环语句中也可以套循环.

需要注意以下几点:

  • 循环的代码块必须缩进,通常使用四个空格来表示。缩进量决定了代码块的范围。
  • 如果循环体内的代码没有改变条件的状态,或者条件一开始就不满足,那么循环将成为无限循环。在这种情况下,可以使用break语句来提前终止循环。

 

【小结】

while循环在Python中用于重复执行一段代码块,直到给定条件不再满足。通过检查条件并控制条件的改变,可以灵活地运用while循环来解决各种问题。


2、for 循环

在Python中,for循环用于遍历序列(如列表、元组、字符串等)或其他可迭代对象中的每个元素,并执行相应的代码块。它的基本语法如下:

for 循环变量 in 可迭代对象:    

       循环体

注意:

  1. python 的 for 和其他语言不同, 没有 "初始化语句", "循环条件判定语句", "循环变量更新语句", 而是 更加简单
  2. 所谓的 "可迭代对象", 指的是 "内部包含多个元素, 能一个一个把元素取出来的特殊变量"

下面是一个简单的示例,展示了for循环的用法:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

【分析】

  1. 在这个例子中,定义了一个包含三个字符串元素的列表fruits;
  2. for循环会依次遍历fruits中的每个元素,并将当前元素的值赋给变量fruit;
  3. 然后,循环体内的代码会执行,打印出当前的水果名称。这个过程会依次重复,直到遍历完整个列表。

输出显示:

💨 代码示例: 求 求 1 - 100 的和

sum = 0
for i in range(1, 101):
    sum += i
print(sum)

输出显示:

 

需要注意以下几点:

  • 循环的代码块必须缩进,通常使用四个空格来表示。缩进量决定了代码块的范围。
  • 可以通过range()函数生成一个序列作为迭代对象,例如range(5)会生成从0到4的整数序列。
  • 可以使用break语句提前终止循环,或使用continue语句跳过当前循环迭代。

除了基本的遍历每个元素外,还可以结合其他控制流语句、条件判断、内置函数等实现更复杂的循环逻辑。

【小结】

for循环在Python中用于遍历可迭代对象中的每个元素,并执行相应的代码块。通过定义变量来表示当前元素的值,可以方便地处理和操作序列或其他可迭代对象。


3、continue

在Python中,continue是一个控制流语句,用于跳过当前循环迭代中的剩余代码,并进入下一次循环迭代。当程序执行到continue语句时,会立即跳过当前迭代的剩余代码,然后继续执行下一次迭代。

continue的使用场景通常与条件判断结合起来,用于在满足特定条件时跳过当前迭代。当条件满足时,continue语句会让程序直接跳到循环的下一个迭代,而不执行当前迭代剩余的代码块。

下面是一个示例,展示了continue的使用方法:

for i in range(1, 6):
    if i == 3:
        continue
    print(i)

输出显示:

 

【分析】

  1. 在这个例子中,使用for循环遍历了整数序列range(1, 6),从1到5。在每次迭代中,如果i的值等于3,那么continue语句会被执行,跳过当前迭代的剩余代码;
  2. 因此,当i等于3时,不会执行print(i)语句,直接进入下一次迭代。这样就实现了跳过输出3的效果。

需要注意以下几点:

  • continue语句通常与条件判断结合使用,用于在满足特定条件时跳过当前迭代。
  • continue语句只会影响到当前所在循环的迭代,不会终止循环。如果需要提前终止循环,可以使用 break 语句。
  • 在嵌套循环中,continue语句只会跳过当前内层循环的迭代,而不会跳出外层循环。

【小结】

continue是Python中的一个控制流语句,用于跳过当前循环迭代中的剩余代码,并进入下一次迭代。通过与条件判断结合使用,可以灵活地控制循环的执行逻辑。


4、break

在Python中,break是一个控制流语句,用于提前终止循环。当程序执行到break语句时,会立即跳出当前所在的循环,不再执行循环的剩余代码,并继续执行循环之后的代码。

break通常与条件判断结合使用,用于在满足特定条件时提前结束循环。当条件满足时,break语句会立即跳出循环,无论循环是否已经执行完毕。

下面是一个示例,展示了break的使用方法:

for i in range(1, 6):
    if i == 3:
        break
    print(i)

输出展示:

【分析】

  1. 在这个例子中,使用for循环遍历了整数序列range(1, 6),从1到5。在每次迭代中,如果i的值等于3,那么break语句会被执行,提前终止循环;
  2. 因此,当i等于3时,不会执行print(i)语句,直接跳出循环。

💨 代码示例: 输入若干个数字, 求平均值. 使用 "分号" 作为结尾

sum = 0
count = 0
while True:
    num = input("请输入数字:")
    if num == ';':
        break
    num = float(num)
    sum += num
    count += 1
print(sum / count)

输出显示:

 

需要注意以下几点:

  • break语句通常与条件判断结合使用,用于在满足特定条件时提前终止循环。
  • break语句会立即跳出当前所在的循环,并继续执行循环之后的代码。
  • 在嵌套循环中,break语句只会跳出当前内层循环,而不会跳出外层循环。

【小结】

break是Python中的一个控制流语句,用于提前终止循环。通过与条件判断结合使用,可以在满足特定条件时跳出循环,提高程序的执行效率。


总结

到此,关于本期的内容便全部讲解完毕了!感谢大家的观看与支持!!!

 

相关文章
|
18天前
|
Java 编译器 C语言
Python速成篇(基础语法)上
Python速成篇(基础语法)上
|
1月前
|
存储 机器学习/深度学习 XML
python基础语法——文件与库
本文基于pycharm编译器,也可以使用Anaconda 里的编译器,将讲解一些python的一些基础语法知识,是对上篇文章的补充.
31 0
|
1月前
|
编译器 测试技术 C++
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
167 0
|
10天前
|
Python
02-python的基础语法-01python字面量/注释/数据类型/数据类型转换
02-python的基础语法-01python字面量/注释/数据类型/数据类型转换
|
18天前
|
存储 监控 Java
Python速成篇(基础语法)下(新年快乐♥)
Python速成篇(基础语法)下(新年快乐♥)
|
24天前
|
Java C语言 C++
【Python】5. 基础语法(3) -- 函数篇
【Python】5. 基础语法(3) -- 函数篇
26 1
|
24天前
|
存储 Java 程序员
【Python】6. 基础语法(4) -- 列表+元组+字典篇
【Python】6. 基础语法(4) -- 列表+元组+字典篇
41 1
|
1月前
|
存储 Python
Python基础语法
Python基础语法
|
1月前
|
数据处理 开发者 Python
|
Java 程序员 C++
【python】—— 基础语法(一)
【python】—— 基础语法(一)