Pythoner集中营Python学习和爬坑

Python学习笔记2

2018-08-24  本文已影响17人  MetaT1an

数据类型

Python数据类型

数值

整数
# 二进制
n1 = 0b1010

# 八进制
n2 = 0o567

# 十六进制
n3 = 0xfdc2
浮点数
# 一般形式
n1 = 3.14

# 科学计数法
n2, n3 = 3.2e6, 1.2e-3
简单数学函数
随机函数
三角函数
import math

angle = 1 / 6 * math.pi     # 30°, pi/6
res1 = math.sin(angle)      # 接收弧度值

angle = math.radians(30)    # 将角度值转换为弧度值
res1 = math.cos(angle)

布尔类型

字符串

字符串表示方式
str = 'abc'     # 单引号对
str = "abc"     # 双引号对
str = '''abc'''     # 三个单引号
str = """abc"""     # 三个双引号

# 混合表示,去掉字符串两端的限制符号就得到字符串数据
# 可以避免使用引号的转义来表示引号
str = "his name is 'rity', that is a good name"

# 使用转义字符来完成
str = "his name is \'rity\', that is a good name"

# 消除字符串的转义
str1 = "That\'s all"
str2 = r"That\'s all"    

print(str1)  # That's all
print(str2)  # That\'s all

# 字符串的跨行表示

str = "his name is 'rity', " \
    "that is a good name"

str = ("his name is 'rity', "
    "that is a good name")
    
"""
可以直接在三对双引号内进行换行
多用于程序的注释
---end---
"""
字符串的操作

列表

有序可变元素的集合

表示方式
# 元素类型单一
li = ["a", "b", "c"]
    
# 多种类型的元素
li = ["a", "b", 1, 2, True]
    
# 列表可以相互嵌套
li = [[1, 2, 3], 2, True, "hehe"]
    
# list()函数,参数为可迭代对象
li = list(range(1, 4))      # [1, 2, 3]
li = list("abc")    # ('a', 'b', 'c')
    
# 列表推导
nums = [1, 2, 3, 4, 5]
li = [n*n for n in nums if n % 2]
print(li)   # [1, 9, 25]
常用操作

元组

有序的不可变的元素集合,切片和根据索引获得单个元素的方式和列表相同。

表示方法
# 单元组
t = (1,)

# 多元组
t1, t2 = (1, 2), (2, 3, 9, 0)

# 复合元组
t = ("abc", [1, 2], 666)

# 嵌套元组
t = ("rity", (18, "nanchang"))

# tuple()函数,用法与list()相同
拆包操作
t = (1, 2, 3)
a, b, c = t
print(a, b, c)  # 1 2 3

字典

无序可变键值对的集合

表示方式
person = {"name": "rity", "age": 18}
print(person, type(person))     # {'name': 'rity', 'age': 18} <class 'dict>'
print(person["name"])   # rity
print(person["age"])    # 18

d = dict.fromkeys("abc", 666)
print(d)    # {'a': 666, 'b': 666, 'c':666}
添加元素
d = {"name": "s1", "age": 18}
d["height"] = 175

d["height"] = 180   # 若键已经存在,则会修改原来对应的值

# 多次打印的结果可能不同,因为字典是无序的
print(d)    # {'age': 18, 'name': 's1', 'height': 175}

# 使用 d0.update(d1)
# 将两个字典合并,若旧字典中有对应的 key,则更新;否则添加

d.update({"year": 1997, "height":180})
删除元素
d = {"name": "s1", "age": 18}

# 使用 del直接删除键值
# 删除不存在的键值对会直接报错

del d["name"]   
print(d)    # {"age": 18}
del d["name1"]  # KeyError: 'name1'

# dic.pop()
# 删除指定的键值对,并返回对应的值
# 删除不存在的键值对会直接报错

v = d.pop("age")
print(v, d)     # 18 {'name': 's1'}

# dic.popitem()
# 删除按升序排序后的第一个键值对,并以元组的形式返回键值对
# 字典为空报错

res = d.popitem()
print(res)      # ('age', 18)

# dic.clear()
# 清空字典,空字典,不是未定义的对象

d.clear()
print(d)    # {}
del d
print(d)     # 报错
获得元素
d = {"name":"Rity", "age": 18}

# 下标访问
print(d["name"])    # Rity
print(d["height")   # 报错,键不存在

# dic.get(key, default)
# 键不存在不会报错,default是键不存在时的返回值,默认为 None

print(d.get("age"))     # 18
print(d.get("height"))  # None
print(d.get("height", 170)  # 170
遍历
d = {"name":"Rity", "age": 18}

#-------------------------------------
# 下面三种方法返回的是一个 Dictionary view objects, 虽然以列表的形式展现,但严格来说不是列表
# 不支持索引访问,但可以使用 list()来转换成普通的列表对象
# 特点:当字典被修改后,以下 ks, vs, itms会同步修改

# 获取所有的键
ks = d.keys()
print(ks)   # dict_values(['Rity', 18])

# 获取所有的值
vs = d.values()
print(vs)   # dict_keys(['name', 'age'])

# 获取所有的键值对
itms = d.items()
print(itms)    #dict_items([('name', 'Rity'), ('age', 18)])

#-------------------------------------
# 字典是可迭代对象,使用 for in
# 若直接遍历字典,得到的是它的键

for x in d.items():
    print(k, end=' ')   # ('name':'Rity') ("age":18)
    
# 元组解包
for k, v in d.items():
    print(k, v, sep='-')   # name-Rity age-18
上一篇 下一篇

猜你喜欢

热点阅读