IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python训练营学习笔记-函数 -> 正文阅读

[Python知识库]Python训练营学习笔记-函数

前言

一个功能需要重复使用,那么就需要将其弄成函数。
示例:

def my_function(x,y,z=1.5):
 	if z>1:
 	 	return z*(x+y)
 	else: 
 	 	return z/(x+y)
my_function(5, 6, z = 0.7)
//如果不定义z的话,z的值就是1.5

在这里插入图片描述

命名空间、作用域和局部函数

作用域(scopes):global and local (全局和局部)
在此需要说明的是,函数中的变量,当在当前函数作用范围之外的时候,是调用不到的(因为已经被摧毁了)
示例:

def func(): 
	a=[]
	for i in range(5):
		 a.append(i)

在这里插入图片描述
但若是想要在函数外也能调用变量的话

a = None
def bind_a_variable():
	global a
	a=[]
bind_a_variable()
print(a)

返回多个值

def f():
 	a = 5
	b = 6
	c = 7
	return {'a':a,'b':b,'c':c}
return_value = f()
return_value

在这里插入图片描述

函数是对象

去掉列表中一些乱码:(使用re.sub)

import re 
states=[' Alabama','Georgia!','Georgia','georgia','F10rIda',
'south carolina##','West virginia?']
def clean_strings(strings):
	result = []
	for value in strings: 
		value = value.strip() //去除空格
		value = re.sub('[!#?]','', value) //去除'!''#''?'这些符号
		value = value.title() //只有首字母大写,其他都小写
		result.append(value)
	return result
clean_strings(states)

在这里插入图片描述
re.sub的函数说明:
在这里插入图片描述
(返回通过替换repl替换字符串中模式最左边不重叠的出现而获得的字符串。Repl可以是字符串,也可以是可调用对象;如果是字符串,则处理其中的反斜杠转义。如果它是一个可调用对象,则它传递了匹配对象并必须返回要使用的替换字符串。)

函数作为列表元素

def remove_punctuation(value):
 	return re.sub('[!#?]', '', value)
clean_ops=[str.strip, remove_punctuation, str.title]
def clean_strings(strings, ops):
	result = []
	for value in strings: 
		for function in ops: 
			value = function(value)
		result.append(value)
	return result
clean_strings(states, clean_ops)

在这里插入图片描述

封装函数和字符

for x in map(remove_punctuation, states):
	 print(x)

在这里插入图片描述

匿名函数(Lambda)

定义函数的一种简单方式
不用Lambda时:

def short_function(x):
	return x * 2
short_function(4)

使用Lambda时:

equiv_anon=lambda x: x * 2
equiv_anon(4)

上述代码结果:8

将函数作为形参:

def apply_to_list(some_list, f):
	 return [f(x) for x in some_list]

ints = [4,0,1,5,6]

apply_to_list(ints, lambda x: x * 2)

代码结果:
在这里插入图片描述

按规则排序

依照列表中有多少种不同元素来排序

strings=['foo', 'card', 'bar', 'aaaa', 'abab']
strings.sort(key=lambda x: len(set(list(x))))
// sort a collection of strings by the number of distinct letters in each string.
strings

代码结果:
在这里插入图片描述

currying

将旧函数中的一个形参定义,然后本身的两个变量变成一个变量

def add_numbers(x,y):
	return x+y 
add_five = lambda y: add_numbers(5, y)
from functools import partial 
add_five = partial(add_numbers,5)

迭代器

不用迭代器:

some_dict = {'a':1,'b':2,'c':3}
for key in some dict: 
	print(key)

代码结果:
在这里插入图片描述

使用迭代器:

dict_iterator = iter(some_dict)
dict_iterator
list(dict_iterator)

代码结果:
在这里插入图片描述

def squares(n=10):
	print('Generating squares from 1 to {0}'.format(n ** 2))
for i in range(1,n+1):
	yield i**2  //此处用yield而不用return的原因:yield可以返回一串值
gen = squares()
for x in gen:
	print(x, end = ' ')

在这里插入图片描述

迭代器更方便的写法

gen=(x ** 2 for x in range(100)) //此处用'()'圆括号,也就是声明迭代器的意思
for x in gen:
	print(x, end = ' ')

叠加求和:

sum(x**2 for x in range(100))

迭代器生成字典:

dict((i, i ** 2) for i in range(5))

在这里插入图片描述

迭代器-itertools:

groupby:按照某种规则,将列表化成小的集合

import itertools 
first_letter = 1ambda x: x[0]
names = ['Alan', 'Adam', 'Wes', 'Will', 'Albert', 'Steven']
for letter, names in itertools.groupby(names, first_letter): 
	print(letter, list(names))

代码结果:
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:29:59  更:2021-08-22 13:31:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:22:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码