原创:叫我詹躲躲
来源:简书
链接:https://www.jianshu.com/p/e7280031a874
1.输出 %占位符
lastname = 'hello' firstname = 'world' print('我的名字是%s %s' %(lastname,firstname))
2.常用的格式化字符
%c 字符 %s 通过str来格式化 %i 有符号十进制整数 %d 有符号十进制整数 %u 无符号十进制整数 %o 八进制整数 %x 十六进制整数(小写字母) %e 索引符号(小写e) %E 索引符号(大写E) %f 浮点实数 %g %f和%e的简写 %G %f和%E的简写
3 格式化的其他方式 format
name = '老夫子' age = 28 print('姓名:{},年龄{}'.format(name,age)) 姓名:老夫子,年龄28
4.匿名函数
lambda 参数1,参数2,参数3:表达式
特点: 1.使用lambda关键字创建函数 2.没有名字的函数 3.匿名函数冒号后面的表达式有且只有一个,是表达式不是语句 4.自带return
5.lambda 示例1
def computer(x,y): # 计算两数和 return x+y M = lambda x,y:x+y print(M(1,2))
6.lambda 示例1
result = lambda a,b,c:a*b*c print(result(12,121,1))
7 lambda 三元表达式模拟
age = 15 print('可以参军' if age>18 else '继续上学') # 直接调用 result = (lambda x,y:x if x>y else y)(2,5)
8.递归函数
# 阶乘函数 def factorial(n): if n==1: return 1 else: return n*factorial(n-1) pass print(factorial(3))
9 递归案例 模拟实现 树形结构的遍历
import os #文件操作模块 def findFile(file_path): listRs = os.listdir(file_path) #得到该路径所有的文件夹 for fileItem in listRs: full_path = os.path.join(file_path,fileItem) if os.path.isdir(full_path): #判断是否为文件夹 findFile(full_path) else: print(fileItem) pass pass else: return findFile('F:\\7.代码学习')
10.python的内置函数
abs(-27) #绝对值 round(21.1123) #浮点近似值 pow(2,3) #幂 2**3 divmod(10,3) # 商余 max(1,2,3,4) #最大值 min(1,2,3,4) #最小值 sum(1,2,3,4) #求和 eval() #动态执行表达式
11.类型转换函数
int #整型 float #浮点型 str #字符类型 ord #返回对应字符的ASCII chr # 数字转字符 ASCII bool # boolean bin # 转换二进制 hex #转换为十六进制 oct # 八进制 list #元祖转列表 tuple #元祖 dict #创建字典 bytes #转为字节
12.可迭代参数 all
# all 用于判定给定的可迭代参数中的所有元素是否都为TRUE,如果是返回TRUE,否则返回FALSE,除了0,空,False 外都算TRUE def all(iterable): for ele in iterable: if not ele: return False return True li = [1,2,3,4,5,6,False] print(all(li)) #False
12 可迭代参数 any
# 全部为false,返回false def any(iterable): for ele in iterable: if ele: return False return True li = [0,False,''] print(any(li)) #False
13.enumerate 列出遍历数据和下标
li = ['a','b','c'] for index,item in enumerate(li,7): print(index,item) # 改下标 7 a 8 b 9 c
14.set集合 不支持索引和切片,无序不重复
1.创建集合1
set1 = {'1','2'} set2 = {'11','1'} # 添加 add set1.add('3') # 清空 clear() set1.clear() # 取差集 difference set1.difference(set2) #set1取set1中有的 # 取交集 set1.intersection(set2) # 取并集 set1.union(set2) set1 | set2 # 末尾移除 set1.pop() # 指定移除 set1.discard(3) # 更新 update 合并一起去重 set1.update(set2)
15 练习题1 三组数据求和
# 1-10,20-30,35-40 def threeSum(a1,a2,a3): return sum(a1+a2+a3) a1 = list(range(1,11)) a2 = list(range(20,31)) a3 = list(range(35,41)) print(threeSum(a1,a2,a3))
16 练习题2 大小和尚多少个
def computers(): for i in range(1,101): for j in range(1,34): if i+j==100 and 3*j+i/3 ==100: print('大和尚有{}个,小和尚有{}个'.format(j,i)) pass computers() # 大和尚有25个,小和尚有75个
17 练习题3 找出独一无二的数据
li = [1,1,1,2,2,2,2,3,2,2,3,4,2,1,1] def findUnionNumber(li): for item in li: if li.count(item)==1: return item pass print(findUnionNumber(li))
1.字典统计每个元素的次数
dict ={} for key in li: dict[key] = dict.get(key,0)+1 print(dict)
2.collection包下Counter类统计
from collections import Counter a = [1, 2, 3, 1, 1, 2] result = Counter(a) print(result)
3.pandas包下的value_counts方法统计
import pandas as pd a = pd.DataFrame([[1,2,3], [3,1,3], [1,2,1]]) result = a.apply(pd.value_counts) print(result)
python 格式化、set类型和class类基础知识练习(下):https://developer.aliyun.com/article/1483373