发布时间:2025-06-24 17:24:02  作者:北方职教升学中心  阅读量:908


 

num = 1fac = 1sum = 0while num <= 5:    fac *= num    sum += fac    num += 1print(f'sum = {sum}')


3.2、空语句 pass

3、语法格式

2.3、练习 

(1) 输入一个整数, 判定是否是奇数

# 输入一个整数, 判定是否是奇数# input返回值是字符串类型,需要转换成整型num = int(input("请输入一个整数:")) if num % 2 == 0:    print(f"num = {num}是偶数")else:    print(f"num = {num}不是偶数")

(2) 输入一个整数, 判定是正数还是负数 

# 输入一个整数, 判定是正数还是负数num = int(input("请输入一个整数:"))if num > 0:    print(f"num = {num} 是正数")elif num < 0:    print(f"num = {num} 是负数")else:    print(f"num = {num} 等于0")

(3) 判定年份是否是闰年

闰年规则 

1、循环语句

3.1、while 循环

3.2、缩进和代码块

代码块指的是一组放在一起执行的代码.
在 Python 中使用缩进表示代码块. 不同级别的缩进, 程序的执行效果是不同的. 

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

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

注意上述代码的区别.

  • 在代码1 中, print("world") 有一级缩进, 这个语句属于 if 内的代码块, 意味着条件成立, 才执行, 条件不成立, 则不执行.
  • 在代码2 中, 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") 没有缩进, 无论上述两个条件是否成立, 该语句都会执行.

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

  • 像 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")
  • 请问, 上述代码中的 print("1") 和 print("2") 属于哪一级缩进?

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

2.4、什么是条件语句

条件语句能够表达 "如果 ... 否则 ..." 这样的语义. 这构成了计算机中基础的 逻辑判定.
条件语句 也叫做 分支语句, 表示了接下来的逻辑可能有几种走向.

一个典型的例子:
如果丘处机没有路过牛家村,

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

其中 "我认真敲代码" 称为 条件. 如果条件成立(条件为真), 则会出现 "我就很容易找到工作" 这个情况. 如果条件不成立(条件为假), 则会出现 "我就容易毕业就失业".

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

如果 我选择躺平摆烂    我就容易毕业就失业否则    我就很容易找到工作

虽然结构变了, 但是整体表达的语义是等价的.

  • PS: uu们, 你们是选择认真敲代码, 还是躺平摆烂呢?

2.2、break

break 表示结束整个循环

代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了半只虫. 

for i in range(1,6):    if i == 3: # i 等于3跳出循环        break    print(f'吃完了第{i}个包子')

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

# 输入若干个数字, 求平均值. 使用 "分号" 作为结尾.sum = 0 # 计算数字总和count = 0 # 记录数字个数while True:    num = input("请输入数字:")    if num == ";":        break    num = float(num)    sum += num    count += 1print(f'平均值 = {sum / count}')

注意:需要一个一个输入!!! 

条件语句

2.1、

个人主页: 熬夜学编程的小林

💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】【Linux系统编程】【MySQL】【Python】

目录

1、能被4整除但是不能被100整除

2、 

代码示例: 计算 5 的阶乘 

# 计算 5 的阶乘 5 * 4 * 3 * 2 * 1num = 5fac = 1 # factorial 阶乘英文单词while num >= 1:    fac *= num    num -= 1print(f'num的阶乘为{fac}')

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

方式一

# 求 1! + 2! + 3! + 4! + 5!num = 1sum = 0while num <= 5:    fac =1    i = 1    while i <= num:        # 计算1-5之间的阶乘        fac *= i        i +=1    # 累加阶乘并将num+1    sum += fac    num += 1print(f'sum = {sum}')

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

方式二

因为 2!= 1!* 2,3! = 2! *3,因此我们可以对循环进行优化,每次累加前面一个数的阶乘 * 该数值即可。顺序语句

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

print("1")print("2")print("3")

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

  • 这个顺序是很关键的. 编程是一件明确无歧义的事情. 安排好任务的顺序, 计算机才能够正确的进行执行.
  • 就好像人生的顺序, 是上学, 工作, 结婚, 生子. 一旦这里的顺序乱了, 就很麻烦.

2、break


1、while 循环

基本语法格式

while 条件:    循环体
  • 条件为真, 则执行循环体代码.
  • 条件为假, 则结束循环.

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

# 打印 1-10 的整数num = 1while num <= 10:    print(num)    num += 1

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

# 计算 1-100 的和num = 1 # 枚举1-100的数sum = 0 # 计算总和while num <= 100:    sum += num    num += 1print(f'总和 sum = {sum}')

此处是为了联系while循环,还可以使用其他方式计算1-100的和。顺序语句

2、continue

continue 表示结束这次循环, 进入下次循环.

 代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了一只虫. 

for i in range(1,6):    if i ==3: # i 等于3进入下一次循环        continue    print(f'吃完第{i}个包子')

3.4、continue

3.4、循环语句

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

3.1、语法格式

Python 中使用if else 关键字表示条件语句.

 (1) if

if expression:    do_something1    do_something2next_something
  • 如果 expression 值为 True, 则执行 do_something1, do_something2, next_something
  • 如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2

在Python中,使用缩进代表执行哪些语句。空语句 pass

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

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

这个代码也可以等价写成

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

其中 pass 表示 空语句, 并不会对程序的执行有任何影响, 只是占个位置, 保持 Python 语法格式符合要求.


如果代码写作

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

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

3、什么是条件语句

2.2、缩进和代码块

2.4、

(2) if - else

if expression:    do_something1else:    do_something2
  • 如果 expression 值为 True, 则执行 do_something1
  • 如果 expression 值为 False, 则执行 do_something2

 (3) if - elif - else

if expression1:    do_something1elif expression2:    do_something2else:    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(合体了).

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

# input的返回值是字符串类型,因此使用字符串进行比较choice = input("输入 1 表示认真学习, 输入 2 表示躺平摆烂: ")if choice == "1":    print("你会找到好工作!") # 使用缩进代表执行条件语句elif choice == "2":    print("你可能毕业就失业了!")else:    print("你的输入有误!")

2.3、练习 

2.5、for 循环

基本语法格式

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

注意:

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

 代码示例: 打印 1-10

# 打印 1-10for num in range(1,11):    print(num)
  • 使用range 函数, 能够生成一个可迭代对象. 生成的范围是 [1, 11), 也就是 [1, 10]

代码示例: 打印 2, 4, 6, 8, 10

# 打印 2, 4, 6, 8, 10for num in range(2,12,2):    print(num)
  • 通过 range 的第三个参数, 可以指定迭代时候的 "步长". 也就是一次让循环变量加几.

代码示例: 打印 10-1

# 打印 10-1for num in range(10,0,-1):    print(num)
  • range 的 步长 也可以设定成负数,-1表示让循环变量减1.

代码示例: 求 1 - 100 的和

# 求 1 - 100 的和sum = 0for num in range(1,101):    sum += numprint(f'sum = {sum}')

3.3、条件语句

2.1、for 循环

3.3、能被400整除

方式一 

# 判定年份是否是闰年year = int(input('请输入年份:'))if year % 100 == 0:    # 判断世纪闰年    if year % 400 == 0:        print(f'year = {year} 是闰年')    else:        print(f'year = {year} 是平年')else:    # 判断普通闰年    if year % 4 == 0:        print(f'year = {year} 是闰年')    else:        print(f'year = {year} 是平年')

方式二(逻辑关系符) 

year = int(input('请输入年份:'))if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):    print(f'year = {year} 是闰年')else:    print(f'year = {year} 是平年')

2.5、