学习于公众号:凹凸玩数据发布的文章
写函数:就是写一个算法,用来实现一些功能。
01.两个变量互换
两个变量可以通过这种方式互相互换赋值
a=5
b=10
a,b=b,a
print(a) #此时a=b=10
print(b) #此时b=a=5
02.检查是不是偶数
这个功能主要是利用bool类型进行判断
def is_even(num):
return num%2==0
print(is_even(10)) #返回的应该是true,返回true即为偶数
print(is_even(3)) #返回的应该是False,返回False即不为偶数
03.分割一个字符串为一个列表
这个案例使用换行符分割,实际应用中,可以更改为任何符号
def split_lines(s):
return s.split('/n')
a=split_lines('yang/n mu/n sen/n sen')
print (a)
运行后:
[‘yang’,'mu','sen','sen']
04.查找对象使用内存的大小
这个例子调用sys的看内存占用情况函数 sys.getsizeof()
import sys
print(sys.getsizeof(5))
print(sys.getsizeof('python'))
运行后:
28
55
05.翻转字符串
简单的字符串可以翻转,以后的图片、音频、视频一样可以翻转。如果你在一个函数里用这个功能,可以解决某些场景里的问题。
language='yang-wang'
reversed_language = language[::-1]
print(reversed_language)
运行后:
gnaw-gnay
06.打印字符串X遍的小程序
1.考虑如何打印N遍。2.理解函数调用
def repeat(string,n):
return(string * n)
a=repeat('y',10)
print(a)
运行后:
yyyyyyyyyy
07.检查一个字符串是否与他的翻转相同
翻转+bool判断
def palindrome(string):
return string==string[::-1]
print (palindrome('python'))
运行后:
False #False代表不相等不相同
08.把一个列表拼装成字符串
用到了列表的join方法
strings=['1','2','3']
print('num'.join(strings))
运行后:
1num2num3
09.将两个列表删除重复项并合并
list(set())的功能是:对原列表去重并按从小到大排序
def union(a,b):
return list(set(a+b))
a=union([1,2,3,4,5],[6,2,8,1,4])
print(a)
运行后:
[1, 2, 3, 4, 5, 6, 8]
10.将列表去重
def unique_elements(numbers):
return list(set(numbers))
a=unique_elements([1,2,2,3,4])
print(a)
运行后:
[1, 2, 3, 4]
11.找到一组数字的均值
*args 用来将参数打包成tuple给函数体调用;
函数mean()可以来计算均值,也可以自己造一个,如下:
def average(*args):
return sum(args,0.0)/len(args) # sum()用法:sum((2, 3, 4), 1),元组计算总和后再加 1
a=average(5,8,2:
print(a)
运行后:
5.0
12.检查一个数组里面是不是都是唯一的值
def unique(list):
if len(list)==len(set(list)):
print('所有数据都是唯一的')
else:
print('并不唯一')
a=unique([1,2,3,4,5])
print(a)
运行后:
所有数据都是唯一的
None
13.找到列表频率最大的数据(还未理解透彻)
def most_frequent(list):
return max(set(list),key=list.count)
numbers=[1,2,3,2,4,3,1,3]
a=most_frequent(numbers)
print(a)
运行后:
3
14.角度变弧度(此处往下均未学习)
import math
def degrees_to_radians(deg):
return (deg * math.pi) / 180.0
degrees_to_radians(90)
# 1.5707963267948966
15.打印运行计算花费时间
import time
start_time = time.time()
a,b = 5,10 #随便一个过程
c = a+b #随便一个过程
end_time = time.time()
time_taken = (end_time- start_time)*(10**6)
print("运行这个耗费微秒数为:", time_taken)
# 运行这个耗费微秒数为: 2.1457672119140625
16.找到一组数的最大公因数
借助工具functools
from functools import reduce
import math
def gcd(numbers):
return reduce(math.gcd, numbers)
gcd([24,108,90])
# 6
17.使用lambda公式
x = lambda a, b, c : a + b + c
print(x(5, 10, 20))
# 35
# 或者也可以这样
def x(a, b, c):
return a + b + c
print(x(5, 10, 30))
# 35
18.使用map函数
对一个列表每一个元素都进行操作的话,可以用map函数,下边是个小案例
def multiply(n):
return n*n
list1 =[1, 2, 3]
result = list(map(multiply, list1))
print(result)
# [1, 4, 9]
19.使用过滤函数-filter
arr = [1, 2, 3, 4, 5]
def Even(x):
return list(filter(lambda x: x % 2 == 0, arr))
Even(arr)
# [2, 4]
20.列表连续操作
numbers = [1, 2, 3]
def squares(nums):
return [number**2 for number in nums]
squares(numbers)
# [1, 4, 9]
21.切片操作
切片用于从给定序列中提取元素的连续序列或子序列。以下函数用于合并两个切片操作的结果。首先,我们将列表从索引d切到末尾,然后从开始切成索引d。
def rotate(arr, d):
return arr[d:] + arr[:d]
if __name__ == '__main__':
arr = [1, 2, 3, 4, 5]
arr = rotate(arr, 2)
print (arr)
# 结果:[3, 4, 5, 1, 2]
22.使用链功能
最后的代码段用于从一行开始调用多个函数并评估结果。
def add(a, b):
return a + b
def subtract(a, b):
return a - b
a, b = 5, 10
print((subtract if a > b else add)(a, b)) # 15
print((subtract if a < b else add)(a, b)) # -5