- Python
Python基础
- 2024-6-3 11:47:38 @
基础
1. 整数除法
print(5 / 2) # 2.5
print(5 // 2) # 2
2. 字符串类型元素不可变
s = "123abc"
# s[0] = 'd' 错误
3. 内置容器
# 列表 []
# 可以存储不同类型的数据
nums = [ 1, 2, 3 , "123"]
# 元组 ()
tup = ( 1, 2, 3, "123")
# 字典 {}
# 哈希表,在3.6后的版本开始,改为有序(keys自动排序)可以用OrderedDict
kv = {"abc" : 2, "def" : 3}
# 集合 {} 无重复元素
# 不能通过下标访问
setA = {1, 2, 3}
输入
input()
会读入一行字符串
s = input() # 读取一行字符串
对读入的字符串进行处理后,可以转为不同的格式
1. 一行 单个数字
# 读入一个数字,通过int(),把字符串转为整型
n = int(input())
2. 一行 多个数字,以空格先间隔
# 读入后,利用字符串的split()方法,按空白分隔为多个字符串
# 每一个字符串用int()转为整型
# 最后在存放到列表中
nums = list(map(int, input().split()))
3. 一行 读入两个数字
a, b = list(map(int, input().split()))
4. 一行 读入多个不同类型
# 调用split(),存入一个列表后中,分批处理
# 比如 读入SunWuKong 92 88
inps = input().split()
name, scores = inps[0], list(map(int, inps[1:]))
输出
格式化输出 使用占位符%s %d %f来输出
print()有个end参数,用来控制输出是否换行
\n 换行符
s = "abc"
i = 2
f = 3.456
print("%s%d%.2f" % (s, i, f))
1. 利用map输出数组
nums = [1, 2, 3, 4, 5]
print(" ".join(map(str, nums))) # 1 2 3 4 5
2. 利用解包符输出数组
nums = [1, 2, 3, 4, 5]
print(*nums) # 1 2 3 4 5
其它
1. 三元运算符
其他语言是 a ? b : c
python中是 b if a else c
print(">" if a > b else "<")
2. divmod
返回结果和余数
d, m = divmod(5, 3)
d, m = 5 // 3, 5 % 3
print(d, m)
3. map
可以对序列中的每一个元素做某个变换,但结果需要转为想要的类型
nums = [1, 2, 3]
f = lambda x : x * x
nnums = list(map(f, nums))
4. 字符转换
1. chr 把数字转成字符
2. ord 把字符转为数字
print(chr(97)) # 'a'
print(ord('a')) # 97
5. 列表推导式
用已存在的一个列表创建一个新的列表
# 用range创建列表
nums = [i for i in range(10)]
print(nums) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 加入判断语句来过滤元素
nums = [i for i in range(10) if i % 2 == 0]
print(nums) # [0, 2, 4, 6, 8]
# 多个for语句
mat = [[1,2,3], [4,5,6], [7,8,9]]
vec = [num for vec in mat for num in vec] # [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
# 列表中的元素进行操作时可以调用自身方法,或传入函数中得到返回值
nums = [-4, -2, 0, 2, 4]
absn = [abs(num) for num in nums]
freshfruit = [' banana', ' loganberry ', 'passion fruit ']
fruits = [fruit.strip() for fruit in freshfruit] # ['banana', 'loganberry', 'passion fruit']
6. Counter 计数器
Counter可以对列表、字符串元素的进行计数,可以当作字典使用
s = "11223344"
nums = [1, 1, 2, 2, 3, 3, 4, 4]
from collections import Counter
print(Counter(s)) # Counter({'1': 2, '2': 2, '3': 2, '4': 2})
print(Counter(nums)) # Counter({1: 2, 2: 2, 3: 2, 4: 2})
7. enumerate
for each遍历时使用获取下标
seasons = ["Spring", "Summer", "Fall", "Winter"]
# for i, season in enumerate(seasons):
print(list(enumerate(seasons))) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
8. zip
两个序列使用相同下标遍历时,可以用zip打包在一起
seasons = ["Spring", "Summer", "Fall", "Winter"]
nums = [10, 20, 30, 40]
# for num, season in zip(nums, seasons):
print(list(zip(nums, seasons))) # [(10, 'Spring'), (20, 'Summer'), (30, 'Fall'), (40, 'Winter')]
进制转换
int函数可将字符串转为整型,第二个传入的参数可以指定传入字符串的进制
num = "1011"
print(int(num, 2)) # 二进制到十进制
print(int("ABCD", 16)) # 十六进制到十进制
bin将十进制转为二进制
hex将十进制转为十六进制
0 条评论
目前还没有评论...