DAY2 学习日志

104 阅读3分钟

DAY2 记录

by HSDY

函数

函数的定义

函数是编程中一个非常重要的概念,它具有特定功能的代码块 可以在程序中多次被调用。 函数通过接受输入的值(作为参数),执行特定的功能

为什么要调用函数

  1. 代码可以重复利用
  2. 提高代码可读性
  3. 简化复杂性

可以把复杂的操作拆分成多个小步骤,每一个步骤用函数

函数的组成

  1. 定义函数 def (define)
  2. 函数名 (小写开头,见名知意,小驼峰,可以下划线)

def carBrand

def student_name

  1. 参数():
  2. 函数体 - 》 要执行的代码块,记得缩紧
  3. 返回值 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')