DAY2 记录
by HSDY
函数
函数的定义
函数是编程中一个非常重要的概念,它具有特定功能的代码块 可以在程序中多次被调用。 函数通过接受输入的值(作为参数),执行特定的功能
为什么要调用函数
- 代码可以重复利用
- 提高代码可读性
- 简化复杂性
可以把复杂的操作拆分成多个小步骤,每一个步骤用函数
函数的组成
- 定义函数 def (define)
- 函数名 (小写开头,见名知意,小驼峰,可以下划线)
def carBrand
def student_name
- 参数():
- 函数体 - 》 要执行的代码块,记得缩紧
- 返回值 return (return后面接什么就返回什么)
# 函数举例
def super_calculator(a, b, c):
d = a * b / c
return d
def greeting_bot(name):
print("hello, " + name)
return "456"
a = greeting_bot('123')
print(a)
# 函数的参数(位置参数/关键字参数)
def bmi_calculator(weight,height):
bmi_value = weight / height**2
print(bmi_value)
return bmi_value
bmi_calculator(50, 1.75)
6.0文件
with open('demo.txt','w', encoding='utf-8') as f:
f.write('123456')
f.close()
#
# with open('demo.txt','r',encoding='utf-8') as f:
# for line in f.readlines():
# print(line)
with open('demo.txt','r',encoding='utf-8') as f:
print(f.read())
7.0类
面向对象编程 - OOP
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
局部变量:定义在方法中的变量,只作用于当前实例的类。
实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
class dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
return f'{self.name} barked!'
my_dog = dog('Bob', breed='dog')
8.0检音
import wave
import pyaudio
# 拾音 / 通过代码 来获取音频
def record_audio(filename):
mic = pyaudio.PyAudio() # 创建一个是实例化对象
stream = mic.open(
format=pyaudio.paInt16, # 音频样本使用16位整数,更高的音质,常见的音频格式
channels=1, # 音频流的声道数量,1是单声道,2是立体声
rate=44100, # 每秒钟采集的音频样本数量,44.1Hz,CD的标准采样率
input=True, # 指定的流是输入还是输出,
frames_per_buffer=8192) # 缓冲区的大小,每次从麦克风读取的音频数据帧数
# 缓冲区越大,程序相应会稍慢
print("开始录音...")
frame = [] # 用于存储录音过程中的音频数据块
for _ in range(0, int(44100 / 8192 * 5)): # 以多少的采样率 录制多少秒
data = stream.read(8192)
frame.append(data)
stream.stop_stream() # 停止音频流
stream.close() # 关闭通道
mic.terminate() # 终止麦克风
wf = wave.open(filename, 'wb') # 写入数据
wf.setnchannels(1)
wf.setsampwidth(mic.get_sample_size(pyaudio.paInt16))
wf.setframerate(44100)
wf.writeframes(b''.join(frame))
wf.close()
record_audio('录音.wav')