Python基础打卡④

函数

函数关键字

关键字是python内置的,是具有特殊意义的表示符,调用其后不需要加()。

函数的定义

函数可以通过函数def来定义,这一关键字后跟一个函数的标识符名称,再跟一对圆括号,其中可以包括一些变量的名称,再以冒号结尾,结束这一行。随后而来的语句块是函数的一部分。

下面打印一个问候语的简单函数:

def greet_user():
    """显示简单的问候语"""
    print("Hello!")
greet_user()

结果如下:
在这里插入图片描述

函数参数与作用域

形式参数
在定义函数时,函数名后面括号中的变量名称叫做形参。

实际参数
在调用函数时,函数名后面括号中的变量名称叫做实参。

默认参数
定义函数时,指定参数的值,在调用函数时,如果没有传入或改变默认参数的值,即使用默认参数。如果不需要改变默认参数,不用传入默认参数;需要改变默认参数时,传入默认参数即可。

可变参数
传入的参数个数可变,可以为0到任意个,在参数前加’*'实现可变参数。可变参数在函数调用时自动组装为一个tuple。在列表和元组前加,可将列表或元组中的元素变为参数传入函数。

位置实参
调用函数时,python必须将函数调用中的每个实参都关联到函数定义中的一个形参。因此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。

显示宠物信息的函数,函数指出一个宠物属于哪种动物以及它叫什么名字:

def describe_pet(animal_type,pet_name):
    """显示宠物的信息"""
    print("\nI have a "+animal_type+".")
    print("My "+animal_type+"'s name is "+pet_name.title()+".")
describe_pet('hamster','harry')

结果如下:
在这里插入图片描述

关键字实参
传递给函数的名称-值对。关键字实参可无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。

def describe_pet(animal_type,pet_name):
    """显示宠物的信息"""
    print("\nI have a "+animal_type+".")
    print("My "+animal_type+"'s name is "+pet_name.title()+".")
describe_pet(animal_type='hamster',pet_name='harry')

结果如下:
在这里插入图片描述

函数返回值

在函数中,可使用return语句将值返回到调用函数的代码行。返回值能够将程序中大部分繁重工作移到函数中去完成,从而简化主程序。
返回简单值
下面一个函数,它接受名和姓并返回整洁的姓名:

def get_formatted_name(first_name,last_name):
    """返回整洁的姓名"""
    full_name=first_name+' '+last_name
    return full_name.title()
musician=get_formatted_name('jimi','hendrix')
print(musician)

结果如下:
在这里插入图片描述
返回字典
函数可返回任何类型的值,包括列表和字典等较复杂的数据结构。

下面的函数接受姓名的组成部分,并返回一个表示人的字典:

def build_person(first_name,last_name):
    """返回一个字典,其中包含有关一个人的信息"""
    person={'first':first_name,'last':last_name}
    return person
musician=build_person('jimi','hendrix')
print(musician)

结果如下:
在这里插入图片描述

file

打开文件方式

读取整个文件
要读取文件,需要一个包含几行文本的文件。

下面首先来创建一个文件,它包含精确到小数点后30位的圆周率,且在小数点后每10位处都换行:
pi_digits.txt

3.1415926535
  8979323846
  2643383279

将该文件保存到本章程序所在的目录中。

使用方法read()读取这个文件的全部内容,并将其作为一个长长的字符串存储在变量contents中。

下面的程序打开并读取这个文件,再将其内容显示到屏幕上:

with open('pi_digits.txt')as file_object:
    contents=file_object.read()
    print(contents)

结果如下:
在这里插入图片描述

逐行读取
要以每次一行的方式检查文件,可对文件对象使用for循环:

filename='pi_digits.txt'
with open(filename)as file_object:
    for line in file_object:
      print(line)

结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190811180510788.pn
使用文件中的内容

创建一个字符串,它包含文件中存储的所有数字,且没有任何空格:

filename='pi_digits.txt'
with open(filename)as file_object:
    lines=file_object.readlines()
    
pi_string=''
for line in lines:
    pi_string+=line.rstrip()
print(pi_string)
print(len(pi_string))

结果如下:
在这里插入图片描述

注:读取文本文件时,Python将其中的所有文本都解读为字符串。如果你读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转换为整数,或使用函数float()将其转换为浮点数。

写入文件

写入空文件
要将文本写入文件,你在调用 open()时需要提供另一个实参,告诉Python你要写入打开的文件。
下面将一条简单的信息存储到文件中,而不是将其打印到屏幕上:

filename='programming.txt'
with open(filename,'w')as file_object:
    file_object.write("I love programming.")

这个程序没有终端输出,打开文件programming.txt,将看到其中包含:
在这里插入图片描述

注意:Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。

文件对象的操作方法

在这里插入图片描述

对excel及csv文件进行操作

csv文件操作

打开CSV
需要提前导入CSV函数包— import csv
打开csv: csv_file=open(file_name[, access_mode])

首先建立一个csv文件:

学号 年龄 性别
1 20 0
2 17 1
3 18 1
4 21 0

然后执行代码:

import csv
csvfile = open('student.csv', encoding = 'utf-8')
data = csv.reader(csvfile)  #data 返回内存地址
for line in data:
    print (line)

结果如下:
在这里插入图片描述

读取CSV
读取csv: csv_file=csv.reader(csvfile);pandas.read_csv(file_name)[导入pandas库](读取后返回的是文件的内存地址)

import pandas as pd
pandas.read_csv('student.csv')

写入CSV
实例化一个write对象: csv_writer = write(csv_file)
利用writerow函数写入: csv_writer.writerow(“new_information”)
代码如下:

import csv
stu_new1 = [5,25,1]
stu_new2 = [6,23,0]
csvfile = open('student.csv','a', newline='')
csv_write = csv.writer(csvfile)
csv_write.writerow(stu_new1)
csv_write.writerow(stu_new2)

结果如下:
在这里插入图片描述
可参考:https://blog.csdn.net/Winterto1990/article/details/47667941

Excel文件操作
利用xlrd库处理excel文件
利用xlwt库处理excel文件

可参考:https://blog.csdn.net/qq_30990097/article/details/80853008

os模块

os模块是python的内置模块,是一个可以访问操作系统的模块

可参考:https://blog.csdn.net/xxlovesht/article/details/80913193

CSDN海神之光上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b或2023b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪(CEEMDAN)、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 1. EMD(经验模态分解,Empirical Mode Decomposition) 2. TVF-EMD(时变滤波的经验模态分解,Time-Varying Filtered Empirical Mode Decomposition) 3. EEMD(集成经验模态分解,Ensemble Empirical Mode Decomposition) 4. VMD(变分模态分解,Variational Mode Decomposition) 5. CEEMDAN(完全自适应噪声集合经验模态分解,Complementary Ensemble Empirical Mode Decomposition with Adaptive Noise) 6. LMD(局部均值分解,Local Mean Decomposition) 7. RLMD(鲁棒局部均值分解, Robust Local Mean Decomposition) 8. ITD(固有时间尺度分解,Intrinsic Time Decomposition) 9. SVMD(逐次变分模态分解,Sequential Variational Mode Decomposition) 10. ICEEMDAN(改进的完全自适应噪声集合经验模态分解,Improved Complementary Ensemble Empirical Mode Decomposition with Adaptive Noise) 11. FMD(特征模式分解,Feature Mode Decomposition) 12. REMD(鲁棒经验模态分解,Robust Empirical Mode Decomposition) 13. SGMD(辛几何模态分解,Spectral-Grouping-based Mode Decomposition) 14. RLMD(鲁棒局部均值分解,Robust Intrinsic Time Decomposition) 15. ESMD(极点对称模态分解, extreme-point symmetric mode decomposition) 16. CEEMD(互补集合经验模态分解,Complementary Ensemble Empirical Mode Decomposition) 17. SSA(奇异谱分析,Singular Spectrum Analysis) 18. SWD(群分解,Swarm Decomposition) 19. RPSEMD(再生相移正弦辅助经验模态分解,Regenerated Phase-shifted Sinusoids assisted Empirical Mode Decomposition) 20. EWT(经验小波变换,Empirical Wavelet Transform) 21. DWT(离散小波变换,Discraete wavelet transform) 22. TDD(时域分解,Time Domain Decomposition) 23. MODWT(最大重叠离散小波变换,Maximal Overlap Discrete Wavelet Transform) 24. MEMD(多元经验模态分解,Multivariate Empirical Mode Decomposition) 25. MVMD(多元变分模态分解,Multivariate Variational Mode Decomposition)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值