python基础(2)
声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队的教学
视频地址:初识python,环境配置,编程基础以及数据类型_哔哩哔哩_bilibili
一、条件控制语句 if 和 elif
if语句用于条件判断,elif(else if)用于添加多个条件分支。如果条件满足,则执行对应的代码。
代码演示:
# 条件控制语句
#input
# if 语句
# if 条件表达式:
# 语句块
# elif 条件表达式:
# 语句块
# else:
# 语句块# 例子1:high = input("请输入你的身高: ")if high >= '150':print('你身高超过150cm,买全票!')elif '120' < high < '150':print('你身高超过120cm,买半票!')else:print('你身高低于120cm,免票!')
二、循环控制
1、while循环
while循环在条件为真时持续执行代码块,可以通过break跳出循环,或使用continue跳过当前循环,继续下一次。
# 循环控制语句
# while 循环# 这是一个简单的循环程序,用于打印从1到10的数字。
# 此函数使用while循环打印数字,并在完成后输出结束信息。
n = 1
while n <= 10:print(n)n = n+1
print("循环结束")# break 语句
# 你可以使用 break 语句来终止循环。
# 此部分演示了如何使用break终止循环,当a等于5时,循环将结束。
a = 1
while a <= 10:print(a)a = a + 1if a == 5:break # 跳出循环
print("循环结束")# continue 语句
# 你可以使用 continue 语句来跳过当前的循环,并直接开始下一次的循环。
# 此部分展示了continue语句的用法,当b等于5时跳过该值的打印,继续下次循环。
b = 0
while b <= 10: # 因为是判断b小于等于10,所以当b等于10的时候,还会循环一次,因此终端会打印11b = b + 1if b == 5:continue # 跳出循环, 开始下一次循环,即终端并不会打印5print(b)print("循环结束")
2、for循环
for循环用于遍历可迭代对象,例如列表、字符串、字典等:
# 循环控制语句
# for 循环,用于遍历各种可迭代对象# 遍历列表
# 这部分代码遍历一个包含水果名称的列表,并打印每个水果fruits = ['apple', 'banana', 'orange']
for fruit in fruits:print(fruit)# 遍历字符串
# 这部分代码遍历一个字符串,并打印字符串中的每个字符name = 'hello word'
for x in name:print(x)# 遍历字典
# 这部分代码遍历字典中的不同元素,包括键、值和键值对person = {'name': 'GGB', 'age': '18', 'city': 'china'}# 遍历字典中的键
# 打印字典中所有的键
for key in person.keys():print(key)# 遍历字典中的值
# 打印字典中所有的值
for value in person.values():print(value)# 遍历字典中的键值对
# 打印字典中的每个键值对
for key, value in person.items():print(f"{key}: {value}")
for else语句
在for循环正常结束时会执行else代码块,但如果被break打断,则不会执行else中的代码
# 循环控制语句
# for 循环,用于遍历各种可迭代对象
# for else 循环,在循环正常结束时执行 else 语句块
# 该代码块展示了 for 循环和 else 语句的结合用法for x in range(10):print(x)
else:print("循环正常结束")# 如果在循环中使用了 break 语句,则 else 语句块将不会执行
# 该代码块展示了使用 break 语句时 else 语句的行为
for i in range(10):print(i)if i == 5:break
else:print("循环正常结束")
三、函数
1、函数声明
函数声明(定义)是使用 def关键字来创建一个函数。函数可以包含参数,并且可以返回一个值。
# 函数声明def hello_world(name): # 声明函数hello_world,参数为nameprint(f"Hello World, {name}") # 函数的主体,打印Hello World并带上用户输入的名字
2、函数调用
函数调用是执行函数的过程。通过函数名和必要的参数来调用一个函数。
# 函数调用
if __name__ == '__main__': # 程序的入口name = input("请输入你的名字:") # 使用input函数获取用户输入的名字hello_world(name) # 调用hello_world函数并传入name参数
3、递归调用
递归调用是指函数在其定义中调用自身。递归通常用于解决可以分解为更小子问题的问题。每个递归函数都需要一个基准条件以防止无限递归。
# 递归函数# 计算n的阶乘
def factorial(n):if n == 0: # 基准条件,递归函数的终止条件是n=0,当n不为0时,函数会一直调用自身,直到n=0时返回1,然后逐层返回结果。return 1else:return n * factorial(n - 1) # 递归调用函数,直到n=0时返回1if __name__ == '__main__':n = int(input("请输入一个整数:")) # 使用input函数获取用户输入的整数result = factorial(n) # 调用factorial函数并传入n参数print(f"{n}! = {result}") # 打印n的阶乘结果
4、参数传递
在 Python 中,函数可以接收参数。参数可以是位置参数、关键字参数、默认参数和可变参数。
- 位置参数:按位置传递参数。
# 位置参数
def greet(name, message):print(f"Hello, {name}! {message}")greet("GGB", "早上好!") # 位置参数传递,按照参数定义的顺序传递参数值
- 关键字参数:使用 key=value 的方式传递参数。
# 关键字参数
def greet(name, message):print(f"Hello, {name}! {message}")greet(name="GGB", message="早上好!") # 关键字参数传递,按照参数名传递参数值
- 默认参数:为参数提供默认值。
# 默认参数
def greet(name, message="早上好!"):print(f"Hello, {name}! {message}")greet("GGB") # 不传递message参数,使用默认值"早上好!"
- 可变参数:使用 *name 来接收可变数量的参数。
# 可变参数
def greet(*names):for name in names:print(f"Hello, {name}!")# 此函数用于接收任意数量的名称并打印问候信息greet("GGB", "Tom", "Frank") # 可变参数传递,可以传递任意数量的参数,参数会被打包成一个元组传递给函数
5、效果演示
四、迭代器和生成器
1、迭代器
# 迭代器使用iter()函数创建,next()函数获取下一个元素
# 迭代器只能使用一次,使用完毕后,需要重新创建迭代器
# 创建一个列表
my_list = [1, 2, 3, 4, 5]# 使用迭代器
my_iter = iter(my_list)# 使用next()方法获取迭代器的下一个元素
print(next(my_iter)) # 1
print(next(my_iter)) # 2
print(next(my_iter)) # 3
print(next(my_iter)) # 4
print(next(my_iter)) # 5
2、生成器
# 生成器
# 生成器是一种特殊的迭代器,它不存储所有的值,而是生成值,需要的时候才生成。
# 它使用yield关键字来生成值,每次调用next()方法,生成器会返回yield关键字后面的值。
# 它可以节省内存,因为它不存储所有的值,而是生成值。
# 它可以实现迭代器的功能,但是它只能使用一次。
# 定义一个生成器
def my_generator():for i in range(10):yield i# 使用生成器my_gen = my_generator()# 使用next()方法获取生成器的下一个元素
print(next(my_gen)) # 0
print(next(my_gen)) # 1
print(next(my_gen)) # 2
print(next(my_gen)) # 3
print(next(my_gen)) # 4
print(next(my_gen)) # 5
# 只使用了5次next()方法,因此生成器只生成了5个值。
五、异常处理
## 异常处理示例def add(a, b):# 计算并打印两个数字的和print(f"{a}+{b} = {a + b}")if __name__ == '__main__':try:# 可能发生异常的代码a = int(input("输入第一个数字: "))b = int(input("输入第二个数字: "))except ValueError:# 捕捉到值错误异常,提示用户输入数字print("请输入数字!")else:# 如果没有异常,调用加法函数add(a, b)finally:# 无论是否发生异常,我都会执行呢print("无论是否发生异常,我都会执行呢") # 无论是否发生异常,都会执行 finally 语句
六、文件读写
文件读写使用with open
with open()是一种上下文管理方式,在打开文件后自动关闭文件,避免资源浪费。常用模式有:
- 'r':读取模式
- 'w':写入模式
- 'a':追加模式
1、写文件
# 写文件
with open('text.txt', 'w') as f:for i in range(10):f.write(str(i)+'\n')
2、追加文件
# 追加文件
with open('text.txt', 'a') as f:f.write('\n'+'Hello, world!')
3、读取文件
# 读取文件
with open('text.txt', 'r') as f:content = f.read()print(content)