大家好,我是大华!
今天是学习 Python 的第三天,前面2天学习了基础的语法,今天来学习一下 if 条件判断、for 和 while 的循环,还有函数的定义和调用。
内容不多,每天学习一点点。

一、条件判断:if/elif/else语句
基本语法:
单个条件判断
age = 18if age >= 18: print("您已成年,可以进入")else: print("抱歉,未满18岁不能进入")
多个条件判断
score = 85if score >= 90: print("优秀")elif score >= 80: print("良好") # 输出这个elif score >= 60: print("及格")else: print("不及格")
简化写法(三元表达式)
age = 20status = "成年" if age >= 18 else "未成年"print(status) # 输出:成年
多个条件组合
temperature = 28is_weekend = Trueif temperature > 25 and is_weekend: print("适合去游泳")elif temperature > 25 or is_weekend: print("可以考虑户外活动")else: print("宅家吧")
二、for循环:遍历序列元素
主要用于遍历列表、元组、字符串等序列
# 基础遍历fruits = ["苹果", "香蕉", "橙子", "葡萄"]for fruit in fruits: print(f"我喜欢吃{fruit}")# 使用range()生成数字序列for i in range(5): # 0,1,2,3,4 print(f"这是第{i+1}次循环")# 同时获取索引和值for index, fruit in enumerate(fruits): print(f"第{index+1}个水果是:{fruit}")
什么时候用 for?当你明确知道要遍历什么,或者循环多少次时,用 for。
三、while循环:条件循环
只要条件为True,就一直执行
# 基础while循环count = 0while count < 5: print(f"计数:{count}") count += 1 # 不要忘记更新条件变量!# 用户交互示例password = ""while password != "123456": password = input("请输入密码:")print("登录成功!")
无限循环(需要break退出)
while True: command = input("请输入命令(输入quit退出):") if command == "quit": print("程序退出") break print(f"执行命令:{command}")
什么时候用 while?当你不知道要循环多少次,只知道什么时候停时,用 while。
使用 while 时一定要注意:
四、循环控制:break 和 continue
循环中的"交通信号灯"
break:立即退出整个循环
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]for num in numbers: if num == 5: print("遇到5,终止循环") break print(num)# 输出:1 2 3 4
continue:跳过本次循环,继续下一次
for num in range(1, 11): if num % 2 == 0: # 如果是偶数 continue # 跳过后续代码 print(f"{num}是奇数")# 输出:1 3 5 7 9
结合使用
data = [23, 45, -10, 78, -5, 0, 99]valid_data = []for value in data: if value < 0: print(f"发现负数{value},跳过") continue if value > 100: print(f"数值{value}过大,停止处理") break valid_data.append(value)print(f"有效数据:{valid_data}")
五、函数的定义与调用
基本语法(下一节会写清楚一些):
# 定义函数def greet(): print("Hello, Python!") print("欢迎学习函数!")# 调用函数greet() # 输出两行问候语# 带参数的函数def greet_person(name): print(f"你好,{name}!")greet_person("小明") # 输出:你好,小明!greet_person("李华") # 输出:你好,李华!
5.1、参数传递的多种方式
1. 位置参数(最常见)
def introduce(name, age, city): print(f"我叫{name},今年{age}岁,来自{city}")# 按照定义顺序传递参数introduce("张三", 25, "北京") # 正确introduce(25, "北京", "张三") # 错误!顺序不对
输出结果:
我叫张三,今年25岁,来自北京我叫25,今年北京岁,来自张三
2. 关键字参数(提高可读性)
# 使用参数名指定值,顺序可以打乱introduce(name="李四", city="上海", age=30)introduce(age=22, name="王五", city="广州")
输出结果:
我叫李四,今年30岁,来自上海我叫王五,今年22岁,来自广州
3. 默认参数(简化调用)
def order_food(dish, quantity=1, spicy_level="微辣"): print(f"您点了:{dish} ×{quantity},辣度:{spicy_level}")order_food("宫保鸡丁") # 使用默认值:1份,微辣order_food("麻辣香锅", 2, "中辣") # 覆盖默认值order_food("水煮鱼", spicy_level="特辣") # 只修改部分默认值
输出结果:
您点了:宫保鸡丁 ×1,辣度:微辣您点了:麻辣香锅 ×2,辣度:中辣您点了:水煮鱼 ×1,辣度:特辣
4. 可变参数(处理不定数量参数)
# *args:接收任意数量的位置参数(元组形式)def sum_numbers(*args): total = 0 for num in args: total += num return totalprint(sum_numbers(1, 2, 3)) # 6print(sum_numbers(1, 2, 3, 4, 5)) # 15# **kwargs:接收任意数量的关键字参数(字典形式)def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}")print_info(name="张三", age=25, city="北京")
输出结果:
615name: 张三age: 25city: 北京
5.2、返回值:函数的结果输出
没有返回值
def say_hello(name): print(f"Hello, {name}!") # 没有return语句,默认返回Noneresult = say_hello("Tom")print(result) # 输出:None
有单个返回值
def add(a, b): """返回两个数的和""" return a + bsum_result = add(3, 5) # sum_result = 8print(f"3 + 5 = {sum_result}")
有多个返回值(返回元组)
def calculate(x, y): """返回加减乘除的结果""" return x + y, x - y, x * y, x / ya, b, c, d = calculate(10, 2) # 元组解包print(f"和:{a}, 差:{b}, 积:{c}, 商:{d}")
5.3、作用域:变量的可见范围
# 全局变量global_var = "我是全局变量"def test_scope(): global global_var # 必须先声明 # 局部变量 local_var = "我是局部变量" print(f"函数内访问全局变量:{global_var}") print(f"函数内访问局部变量:{local_var}") # 修改全局变量 global_var = "全局变量已被修改"test_scope()# print(local_var) # 报错:局部变量不能在函数外访问print(f"函数外访问全局变量:{global_var}")
输出结果:
函数内访问全局变量:我是全局变量函数内访问局部变量:我是局部变量函数外访问全局变量:全局变量已被修改
今天的学习内容先到这里。如果有不对或者需要补充的地方,欢迎指正。
如果你觉得文章写的还不错,不妨点赞、推荐,转发给你的朋友看一下。