Python学习:基本语法(二)
四、判断语句
if ... elif ... else
if 作为强制语句,可独立使用,elif、else为可选语句,并且不能独立使用
判断语句配合布尔值,通过判断一条或多条语句的条件是否成立从而决定下一步的动作
如果成立,则执行 if 或 elif 下的内容;如果不成立,则执行 else 下的内容;如果没有 else 则不做任何处理
>>> a = 10 # 定义变量a,并赋值 10
>>> b = 11 # 定义变量b,并赋值 11
>>> if a > b: # 通过 if 语句判断 a 是否大于 b,如果成立则输出 1
... print('1')
... elif a == b: # 如果 if 判断结果不成立,则执行 elif 判断 a 是否等于 b,如果结果成立则输出 2
... print('2')
... elif a < b: # 如果第一个 elif 判断结果不成立,则执行第二个 elif 判断 a 是否小于 b,如果成立则输出 3
... print('3')
... else: # 如果前面的 if ... elif 判断均不成立,则执行 else,输出 4
... print('4')
...
3 # 最后输出结果为3,则说明在第二个 elif 语句判断的结果成立
>>>
if 语句也可以嵌套,进行多次判断
>>> a = ['13579', '24680'] # 定义变量 a 并赋值
>>>
>>> if '1' in a[0]: # 先判断 1 是否在列表a 的第一个元素中,如果在,则进入分支if判断 2 是否在列表a的第一个元素中,如果 2 不在列表a的第一个元素中则继续执行elif
... if '2' in a[0]:
... print(f"1在 列表 a 的第一个元素中!")
... elif '3' in a[0]: #
... print(f"1 和 3 均在 列表 a 的第一个元素中!")
...
1 和 3 均在 列表 a 的第一个元素中!
>>>
五、循环语句
1、while
while 语句用于循环执行一段代码
每当写在 while 语句下的程序被执行一次,代码会根据while接的判断语句的返回值决定是否再次执行
如果结果为 True,则继续执行
如果结果为 False,则终止执行
如果要中途强制终止 while 循环,则需要使用 break 语句
'''
使用 while 判断变量 a 是否小于 b,如果判断结果为 True,则输出变量 a,并每次让 a +1
反复循环,直到 a = 10,因 a < b不再成立,代码终止
'''
>>> a = 1
>>> b = 10
>>> while a <b:
... print(a)
... a += 1
...
1
2
3
4
5
6
7
8
9
2、for
for 语句用来遍历一组可迭代的序列,将这些序列中的元素遍历完成后 for 循环也终止
for 循环使用场景:
固定次数循环
遍历数组/列表
遍历字符串
生成序列
嵌套循环
for 循环的结构:
1、初始化 ------ 设置循环变量的初始值(如 item = 0)
2、条件判断 ------ 每次循环开始前检查条件,为 True 时执行循环,否则退出
3、循环体 ------ 需要重复执行的代码块
4、更新步长 ------ 每次循环结束后更新循环变量(如 item++)
和 while 循环的不同:
while 循环的循环次数不确定,仅依赖某个条件成立
for 循环的循环次数确定或在一定的范围内进行遍历
# 遍历列表
>>> fruits = ["苹果", "香蕉", "橘子"]
>>> for fruit in fruits:
... print(fruit)
...
苹果
香蕉
橘子
>>>
# 例:计算 1+2+3+....+100
>>> total = 0 # 初始化
>>> for i in range(1, 101): # 条件判断,在1 ~ 100范围内进行循环
... total += i # 需要执行的代码,total 循环累加: 1+2+3+ ... +100
...
>>> print(total) # 输出结果
5050
>>>
六、文本文件操作
1、open()
open()函数可用来打开一个文本文件
open()函数打开文件会涉及到一个关键词:指针
指针可简单理解为光标所在的位置
open()函数的模式
r :以只读方式打开文件,只能打开已存在的文件,如果文件不存在则报错,,指针在文件内容的开头
w :以只写入的方式打开文件,如果文件已存在则删除文件中原有的内容写入新的内容,如果文件不存在则创建文件,,指针在文件内容的开头
a :以追加的方式打开文件,如果文件已存在则原有内容不会删除,新内容将被添加在原有内容最后,如果文件不存在则创建文件,,指针在文件内容的末尾
r+ :以读写的方式打开文件,只能打开已存在的文件 ,不会删除文件原有内容,从文件内容开头开始覆盖原有内容,,指针在文件内容的开头
w+ :以读写方式打开文件,会删除文件原有内容重新写入新内容,,指针在文件内容的开头
a+ :以读写方式打开文件,保留文件原有内容,新写入的内容将被添加在原有内容最后,,指针在文件内容的末尾
在D的open_test文件夹中创建了一个test.txt的文本文件



2、文本读取
当使用open()打开文件后,读取其中的内容里需要用到读取文件的方法:
read()、readline()、readlines()
(1)read()
在open()方法的示例中使用到过 read()
即读取文本文件中的内容并返回,返回值为字符串
当使用 read()方法输出内容后,第二次再使用时不会显示任何内容,这是因为文件指针的位置从开头移动到了末尾,需要使用seek()函数将文件指针返回到开头。

(2)readline()
read()是一次性将文件中的内容全部显示出来,如果文件内容较长时不便于阅读 。
readline()则是逐行读取,返回的结果为字符串。

(3)readlines()
readlines() 为一次性加载所有行,返回的结果为列表

3、文本写入
write()
文本写入需要配合open()读取的参数:r+、w/w+、a/a+

4、with
使用open()函数打开的文件将会一直处于打开状态,需要使用close()进行关闭
with 是Python的上下文管理器语法,用于简化资源管理
对于文件对象,with确保代码执行完毕后自动调用close()

七、自定义函数
函数是组织好的、可重复使用的代码块,可提高代码的模块化和可读性。
除了Python内建函数外,可通过创建自定义函数(User-Defined Function)来完成一些需要重复使用的代码块。
使用 def 关键字自定义函数:
def 函数名(参数1, 参数2, ...):
# 函数体
return 返回值 # 可选
示例:
>>> def greet(name):
... """打招呼"""
... return f"Hello!{name}!"
...
>>> greet("Alice")
'Hello!Alice!'
>>>
1、参数类型
(1)必须参数(位置参数)
调用时必须以正确的顺序传入,数量必须与定义一致

(2)默认参数
给参数指定默认值,调用时如果不指定则使用默认值
默认参数应该放在必需参数之后,且最好不要使用可变对象(列表、字典)作为默认值。
>>>
>>> def add(a, b=2):
... return a + b
...
>>> add(1)
3
>>> add(1,3)
4
>>>
>>>
>>> def power(a, b=2):
... return a ** b
...
>>> power(2)
4
>>> power(2,3)
8
>>>
(3)关键字参数
调用时使用 参数名=值 的方式,可不按顺序传递
>>> def power(num, pow):
... result = num ** pow
... print(f"{num}的{pow}次方的结果为:{result}")
...
>>> power(pow=3, num=2)
2的3次方的结果为:8
>>>
(4)可变参数
*args :接收任意多个位置参数,打包成元组
**kwargs :接收任意多个关键字参数,打包成字典
>>> def collect(*args, **kwargs):
... print("args:", args)
... print("kwargs:", kwargs)
...
>>> collect(1, 2, 3, x=10, y=20)
args: (1, 2, 3)
kwargs: {'x': 10, 'y': 20}
>>>
2、返回值
return、print()
使用 return 返回一个可以是任何类型的值,并立即结束执行
没有 return 或仅写 return 时,返回 None
可以元组的方式返回多个值
那么什么时候需要使用 return ?
要区分:
函数计算出一个结果或希望终止函数的执行但不返回有意义的值(return)
函数只是执行某个动作(print())
>>> def add(a, b):
... return a + b # 通过 rerturn 返回 a + b 的结果
...
>>> result = add(2, 3) # 定义变量 result 并将函数计算的结果赋值给变量 result
>>> result # 通过 result 可查看到结果
5
>>> def add(a, b):
... print(a + b) # 通过 print()输出 a + b 的结果
...
>>> result = add(3, 4) # 定义 result 并赋值,然后直接输出结果
7
>>>
这两种方式都得到了结果,但实现的功能不一样
return与print()的区别
| return | print() | |
| 作用 | 将值传回调用者,供后续代码使用 | 在控制台显示文本,供查看 |
| 是否终止函数 | 是,函数立即结束执行 | 否,函数继续执行 |
| 能否被变量接收 | 能, x = func() | 不能,x = print(3) ,x 为 None |
3、文档字符串
紧跟在函数头后面的字符串,使用三引号(""" """)引用,用于描述函数的功能、参数和返回值。
>>> def add(a, b):
... """ 计算 a + b 的和"""
... return a + b
...
>>>
4、作用域规则
函数内部定义的变量是局部变量,只在函数内访问
函数支持嵌套,如果要修改外层函数的变量,则使用 nonlocal
如果修改全局变量,则使用 global
>>> a = 10 # 全局变量
>>> def outer():
... y = 20 # 外层函数变量
... def inner():
... nonlocal y # 使用 nonlocal 修改外层函数变量
... y += 1
... print(y)
... inner()
...
>>> outer()
21
>>>
5、自定义一个函数
# 自定义一个函数
def calculate(operation: str, *numbers: float) -> float:
"""
根据操作符对传入的数字进行计算。
参数:
operation:
'sum':求和
'avg':求平均值
'max':最大值
'min' :最小值
*numbers: 任意数量的数值
返回:
计算结果
"""
if not numbers:
raise ValueError('至少传入一个数字')
if operation == 'sum':
return sum(numbers)
elif operation == 'avg':
return sum(numbers) / len(numbers)
elif operation == 'max':
return max(numbers)
elif operation == 'min':
return min(numbers)
else:
raise ValueError('不支持的操作符')
# 调用
result = calculate('sum', 10, 20, 30)
print(result)
result = calculate('avg', 10, 20, 30)
print(result)
result = calculate('max', 10, 20, 30)
print(result)
result = calculate('min', 10, 20, 30)
print(result)
将学习的过程用这种方式记录下来,也是一次复习。
目的也是为了使用数通网络方面的第三方库和日常的一些办公小应用。
可能有些内容理解的不是很全面,望指正!
更多推荐
所有评论(0)