基础


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 条评论

目前还没有评论...