一、基本输入输出
# input():将所有输入都当作字符串,需要类型转换
num_int = int(input('Please input an int'))
num_float = float(input('Please input a float'))
num_complex = complex(input('Please input a complex'))
container_list = eval(input('Please input a list'))
container_tuple = eval(input('Please input a tuple'))
container_dic = eval(input('Please input a dic'))
container_set = eval(input('Please input a set'))
print(num_int)
print(num_float)
print(num_complex)
print(container_list)
print(container_tuple)
print(container_dic)
print(container_set)
# print()
num_int = 233
num_float = 2.6985
num_complex = 2+6j
print(num_int, num_float) # 默认空格分隔,回车结尾
print(num_int, num_float, num_complex, sep=',') # 逗号分隔
print(num_int, num_float, num_complex, end='end') # end结尾
print(num_int, num_float)
二、数学函数
import math
# 实数比大小
print(math.isclose(0.4-0.3, 0.1))
print(round(0.1+0.2,2) == 0.3)
# 阶乘
print(math.factorial(32)) # 32的阶乘
# 平方根
print(7**0.5) # 7的平方根
# 复数运算
c = 3+4j
print(c+c) # 加
print(c**2) # 幂运算
print(c.real) # 查看实部
print(c.imag) # 查看虚部
print(c.conjugate()) # 查看共轭复数
print(abs(c)) # 计算模
三、容器操作
# 容器定义
x_list = [1, 2, 3] # 列表
x_tuple = (1, 2, 3) # 元组
x_dict = {'a': 97, 'b': 98, 'c': 99} # 字典
x_set = {1, 2, 3} # 集合
# 容器访问
print(x_list[0], x_list[-1]) # 列表
print(x_tuple[0], x_tuple[-2]) # 元组
print(x_dict['a']) # 字典(不安全)
print(x_dict.get('speed')) # 字典(安全),返回None
print(x_set) # 集合,是无序的,不能索引
# 元素个数
print(len(x_list))
print(len(x_tuple))
print(len(x_dict))
print(len(x_set))
# 增加元素
x_list = []
x_tuple = ()
x_dic = {}
x_set = set()
x_list.append('list0') # 列表,增加在末尾
x_list.insert(0, 'listx') # 列表,增加在任意位置
x_tuple = (200, 50) # 元组,定义了就不能修改,除非重新定义
x_dic['key'] = 'value' # 字典,添加和修改一样
x_set.add('set0') # 集合,无序,无需索引
x_set.update({1, 3})
x_set.update([1, 4], [5, 6])
print("After add:")
print("x_list:", x_list)
print("x_tuple:", x_tuple)
print("x_dic:", x_dic)
print("x_set:", x_set)
# 删除元素
x_list = ['list0', 'list1', 'list2', 'list3']
x_tuple = ('tuple0', 'tuple1', 'tuple2', 'tuple3')
x_dic = {'dic0': 0, 'dic1': 1, 'dic2': 2, 'dic3': 3, 'key': 'value'}
x_set = {'set0', 'set1', 'set2', 'set3', 'set4'}
del x_list[0] # 列表,删除0号位置
x_list.remove('list3') # 列表,删除值为list3的元素
popped_element = x_list.pop(1) # 列表,弹出1号位置的元素,并赋给变量
# 元组,不可修改
del x_dic['key'] # 字典,删除名称为key的键值对
x_set.remove('set2') # 集合(不安全),删除名为set2的元素
x_set.discard('set2') # 集合(安全),不存在不会发生错误
x_set.pop() # 集合(随机删除一个元素)
print("\nAfter delete:")
print("x_list:", x_list)
print("x_tuple:", x_tuple)
print("x_dic:", x_dic)
print("x_set:", x_set)
# 清空or删除容器
x_list.clear() # 清空列表
del x_list # 删除列表
# 元组不可修改
del x_tuple # 删除元组
x_dic.clear() # 清空字典
del x_dic # 删除字典
x_set.clear() # 清空集合
del x_set # 删除集合
四、类型转换
# int()
# 实数->整数
print(int(3.5)) # 获取实数的整数部分
# 字符串->整数
print(int('119')) # 把整数字符串转换为整数
print(int(' 9\n')) # 自动忽略字符串两个的空白字符
# 进制转换
print(int('1111', 2)) # 把1111看作二进制数,转换为十进制数
print(int('1111', 8)) # 把1111看作八进制数,转换为十进制数
print(int('1111', 16)) # 把1111看作十六进制数,转换为十进制数
#float()、complex()
# 字符串->浮点数
print(float('3.1415926')) # 把字符串转换为实数
print(float('-inf')) # 负无穷大
# 产生复数
print(complex(3, 4)) # 复数
print(complex(6j))
print(complex('3'))
# bin()、oct()、hex()
# 进制转换
print(bin(8888)) # 把整数转换为二进制
print(oct(8888)) # 把整数转换为八进制
print(hex(8888)) # 把整数转换为十六进制
# ord()、chr()、str()
# ASCII or Unicode 字码转换
print(ord('a')) # 返回字符的ASCII码
print(chr(65)) # 返回指定ASCII码对应的字符
print(ord('董')) # 返回汉字字符的Unicode编码
print(chr(33891)) # 返回指定Unicode编码对应的汉字
# 容器->字符串
print(str([1, 2, 3, 4])) # 把列表转换为字符串
print(str({1, 2, 3, 4})) # 把集合转换为字符串
# list()、tuple()、dict()、set()
# 集合->列表or元组
s = {3, 2, 1, 4}
print(list(s))
print(tuple(s))
# 列表->元组or集合
lst = [1, 1, 2, 2, 3, 4]
print(tuple(lst))
print(set(lst)) # 自动去重
# 字符串->列表
print(str(lst)) # 包括[],逐字符插入
print(list(str(lst)))
print(tuple(str(lst)))
print(set(str(lst)))
# 键值对->字典
print(dict(name='Dong', sex='Male', age=41))
五、字符串操作
【Python】字符串,数,运算符_fftx_00的博客-CSDN博客
六、max(),min()
"""
比较单个字符
"""
# 表中最大单个字符
max(data, key=str)
# 表中最大单个字符(小写)
max(data, key=str.lower)
# 表中出现次数最多的元素
max(set(data), key=data.count)
# 表中最大元素的位置,列表方法__getitem__()用于获取指定位置的值
max(range(len(data)), key=data.__getitem__)
# 与原顺序相同的唯一元素
max(set(data),key=data.index)
"""
比较字符串
"""
# 表中最长字符串
max(data, key=len)
"""
如果在类中定义了__getitem__()方法,那么他的实例对象(假设为P)就可以这样P[key]取值。
"""
"""
所有结果最后拼接成字符串:
''.join()
"""
data = [111, 22, 556, 8494131, 1354]
max(data, key=str)
max(data, key=lambda x: str(x))
data =['12364654', '131', '12313']
max(data, key=str.lower)
max(data, key=lambda x: x.lower())
"""
lambda用于取容器中的元素,并施加函数
【如取list和string中的元素】
对于整体似乎用不上
"""
七、len(),sum()
# len():容器中元素的个数
# sum():容器中所有元素之和
data = [1, 2, 3, 4]
print(len(data))
print(sum(data))
data = (1, 2, 3)
print(len(data))
print(sum(data))
data = {1, 2, 3}
print(len(data))
print(sum(data))
data = 'Readability counts.'
print(len(data)) # 字符串长度
data = {1: 'a', 2: 'b', 3: 'c'}
print(len(data)) # 键个数
print(sum(data)) # 所有键相加
八、sorted(),reversed(),list.sort(),
# sorted(): 临时升序排序
from random import shuffle
data = list(range(20))
shuffle(data) # 随机打乱顺序
print(data)
print(sorted(data)) # 升序排序
print(sorted(data, key=str)) # 按转换成字符串后的大小升序排序
print(sorted(data, key=str, reverse=True)) # 按转换成字符串后的大小降序排序
# reversed():临时逆转容器顺序
# 返回一个反向的 iterator,只能使用一次,不支持使用内置函数reversed()再次翻转
# 惰性求值,不支持使用内置函数len()计算元素个数
from random import shuffle
data = list(range(20)) # 创建列表
shuffle(data) # 随机打乱顺序
print(data)
reversedData = reversed(data) # 生成反向迭代器
print(list(reversedData)) # 根据反向迭代器遍历得列表
print(tuple(reversedData)) # 空元组
list.sort()没有返回值,直接修改了原表
九、range()
Python3 range() 函数返回的是一个可迭代对象
# range(start, stop, step)生成数值列表
range1 = range(4) # 只指定stop为4,start默认为0,step默认为1
range2 = range(5, 8) # 指定start=5和stop=8,step默认为1
range3 = range(3, 20, 4) # 指定start=3、stop=20和step=4
range4 = range(20, 0, -3) # step也可以是负数
十、zip()
十一、map()
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
参考资料:Python map() 函数_lilong117194的博客-CSDN博客_python中map()
十二、reduce()
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
但是此处如果只计算加法,直接
sum1 = sum([1, 2, 3, 4, 5])
更方便
十三、filter()
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。