初识函数及文件操作

1. 函数的基本作用

  • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可

  • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”

函数式编程最重要的是增强代码的重用性和可读性

2. 定义和使用

def 函数名(参数):

...

函数体

...

返回值

函数的定义主要有如下要点:

  • def:表示函数的关键字

  • 函数名:函数的名称,日后根据函数名调用函数
  • 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
  • 参数:为函数体提供数据
  • 返回值:当函数执行完毕后,可以给调用者返回数据

return值是用来给调用者的。

在函数中,一旦执行了return,函数执行过程立即终止。

在未设置return值得时候,自动返回none。

3.参数

(1)普通参数(严格按照顺序,将实际参数赋值给形式参数)

(2)默认参数(必须放到最后)

(3)指定参数(将实际参数赋值给制定的形式参数)

(4)动态参数

*  默认将传入的参数,全部放置在元组中(以元组传入)

**默认将传入的参数,全部放置在字典中(以字典传入)

def f1(*args):  #     print(args,type(args))

li = [11,22,‘hahah‘]f1(li)f1(*li)
结果:

([11, 22, ‘hahah‘],) <class ‘tuple‘>
(11, 22, ‘hahah‘) <class ‘tuple‘>

def f1(**args):  # 以字典传入    print(args,type(args))
f1(n1="haha", n2=18)dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘}f1(kk=dic)f1(**dic)  # 直接赋值args
结果:

{‘n2‘: 18, ‘n1‘: ‘haha‘} <class ‘dict‘>
{‘kk‘: {‘k2‘: ‘v2‘, ‘k1‘: ‘v1‘}} <class ‘dict‘>
{‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} <class ‘dict‘>

(5)万能参数  *args在前  **kwargs在后

str format 格式化输出

s1 = "I am {0}, age{1}".format(‘haha‘, 18)print(s1)s2 = "I am {0}, age{1}".format(*[‘haha‘, 18])print(s2)
结果:

I am haha, age18
I am haha, age18

s1 = "I am {name}, age{age}".format(name=‘haha‘, age=18)print(s1)dic = {‘name‘: ‘haha‘, ‘age‘:18}s2 = "I am {name}, age{age}".format(**dic)print(s2)
结果:

I am haha, age18
I am haha, age18

函数参数传递说明:传递的是引用值。即同一值在内存中,只有一个位置

def f1(a1):    a1.append(999)

li = [11,22,33,44]f1(li)print(li)
结果:
[11, 22, 33, 44, 999]
全局变量,所有的作用域都可读优先使用自己域中
对全局变量进行重新赋值,需要global
特殊:列表、字典。可修改,不可重新赋值
全局变量----大写

4. 小细节

函数与函数之间加两行空格------PEP8

读取文件每一行的时候 加上.strip()--去掉换行符及空格

5. 三元运算/三目运算

if 1==1:    name = ‘alex‘else:    name = ‘hahah‘
等同:

name = ‘alex‘ if 1 == 1 else ‘hahah‘

6. Lambda表达式

针对简单赋值函数,简化

def f1(a1):    return a1 + 100
等同:

f2 = lambda a1: a1 + 100

7. 内建函数

[], ‘‘, 0,   False
all()  # 里面每一个均为真,则为真,有一个为假,则为假

any()  # 只要有真,则为真

bin()  # 将传进去的10进制转为2进制  0b—>二进制

oct()  # 转为8进制  0o—>八进制

hex()  # 转为16进制  0x—>十六进制

字符串转换字节类型

bytes(只要转换的字符串,按照什么编码)

n = bytes("李杰", encoding="utf-8")
print(n)
n = bytes("李杰", encoding="gbk")
print(n)

字节转化成字符串

new_str = str(bytes("李杰", encoding="utf-8"), encoding="utf-8")

8. 文件操作

f = open("db", ‘r+‘, encoding = "utf-8")

# 如果打开模式为r+,无b,则read按照字符读取

f.tell()

# tell当前指针所在的位置(字节—>一个汉字,三个字节

f.seek()

# 调整当前指着的位置(字节

f.seek(f.tell())

# 当前指针位置开始覆盖

f.flush()  # 强制刷新

f.truncate()  # seek位置,清空后面数据

时间: 2024-08-07 10:46:49

初识函数及文件操作的相关文章

python第三节函数,文件操作

文件操作#以读的方式打开文件# f=open('c.txt',encoding='utf-8')# print(f)# data = f.read() #以读的方式打开# print(data)# print(f.closed) #判断文件是否是关闭状态# print(f.encoding)#输出文件编码# print(f.name)   #输出文件名称# print(f.readable())#判断文件是否是读模式# print(f.readline(),end='')#一次只读一行,end去

python 集合、函数、文件操作

集合 一.集合的特性 无序,不重复 二.集合的创建方法 1. 大括号 >>> s = {11, 22, 33, 11} >>> s {33, 11, 22} 2.初始化函数set >>> s = set((11,22,33,11)) >>> s {33, 11, 22} 还可以使用set创建空集合 >>> s = set() >>> s set() 调用set()函数的时候相当于执行了python中

Python学习之旅 —— 基础篇(三)set集合、函数、文件操作

本篇要点: 数据类型:set集合 函数 文件操作 三元运算(三目运算)和lambda表达式 一.set集合 python中数据类型的一种,是无序并且不重复的数据集合.set源码: class set(object): """ 创建set集合 set() -> new empty set object 把可迭代的数据类型转换成元组 set(iterable) -> new set object Build an unordered collection of uni

python学习笔记-day03 (函数和文件操作)

函数(代码块,按功能划分(也可按其他方式划分)) 内置函数第三方函数自定义函数 内置函数:help()dir()type()reload()id() vars()  # 获取脚本中的变量,当前模块的所有变量    {'__name__': '__main__',  #被执行的脚本,__name__ 的值为__main__    '__builtins__': <module '__builtin__' (built-in)>,     '__file__': '/PYthon/test/tes

Python基础:Python函数、文件操作、递归

函数参数 函数参数包括位置参数,关键字参数,动态参数(*args, **args)三种. 传参的过程是形式参数的赋值. *args传入的参数是元组形式,**args传入的参数是字典形式. 示例代码如下:(这部分直接看代码实例会更清楚静态参数与动态参数如何混用) 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # def story(**kwargs): 4 # return 'Once upon a time,there was a ' 5

C语言的f(open)函数(文件操作/读写)

头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:     FILE * fopen(const char * path, const char * mode); [参数]path为包含了路径的文件名,mode为文件打开方式. mode有以下几种方式: 打开方式 说明 r 以只读方式打开文件,该文件必须存在. r+ 以读/写方式打开文件,该文件必须存在. rb+ 以读/写方式打开一个二进制文件,只允许读/写数据. rt+ 以读/写

自动化运维Python系列(三)之基础函数和文件操作

函数作用 增强代码的重用性和可读性 在没有使用函数编程之前,我们可能一直遵循的都是面向过程编程,即根据业务逻辑从上到下实现各个功能,这样的做的坏处是代码可读性不强,大量冗余代码,而且执行效率不高:有了函数后,我们就可以将多次使用到的相同代码模块放在单独的函数定义中,在任何想要调用它的地方随时调用,这就叫做函数式编程. 面向对象编程其实就是对函数进行再分类和封装,让开发"更快更好更强..." 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 函数的定义主要有如下要点:

python基础总结(函数,文件操作)

一.内建函数 1.数学运算类 abs(x)#求绝对值 divmod(a, b)#分别取商和余数 float([x])#将一个字符串或数转换为浮点数.如果无参数将返回0.0 int([x[, base]])#将一个字符转换为int类型,base表示进制 long([x[, base]])#将一个字符转换为long类型 range([start], stop[, step]) #产生一个序列,默认从0开始 oct(x)#将一个数字转化为8进制 hex(x)#将整数x转换为16进制字符串 chr(i)

C语言的fopen函数(文件操作/读写)

头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:     FILE * fopen(const char * path, const char * mode); [参数]path为包含了路径的文件名,mode为文件打开方式. mode有以下几种方式: 打开方式 说明 r 以只读方式打开文件,该文件必须存在. r+ 以读/写方式打开文件,该文件必须存在. rb+ 以读/写方式打开一个二进制文件,只允许读/写数据. rt+ 以读/写