切片技术
列表和元组可以通过切片很方便地取出里面的元素
data = ['小明', '小东', '小花', '456', '["东","西","南","北"]']
print(data[1:3]) # 取1-3
print(data[:]) # 取全部
print(data[:3]) # 取0-3
print(data[1:]) # 取1-最后
print(data[-3:]) # 取最后3个
断点调试
通过断点调试可以查看每一个变量的数值,对debug很有用
断点调试:在Pycharm左侧代码行数处点击左键,出现小红点,然后点击文件-debug
使用f7 调试的时候遇到方法体的时候会进入到方法体内部,每个方法依次执行
使用f8 调试的时候,遇到方法体不会进入方法内部,只会依次执行
使用f9 调试的时候,只会执行打断点的地方
序列
以下方法可以在各种可迭代对象之间转换
list() 将元组或字典转换成列表
tuple() 将列表转换成元组
zip()和dict() 将列表转换成字典
end=' ' 表示打印每句代码加间隔符,不换行
data1 = {"name": "小明", "性别": "男", "年龄": 15, "电话": [146255477, 17625437, 28173564]}
print(data1["年龄"])
for i in data1["电话"]:
print(i, end=' ') # end=' '加间隔符,不换行
# list() 将元组或字典转换成列表
print(list(data1))
print(list(data1.keys()))
print(list(data1.values()))
print(list(data1.items()))
# tuple() 将列表转换成元组
print(tuple(data1["电话"]))
# join() 将序列中的元素以指定的字符链接生成新的字符串,即可以将列表,元组转换成字符串
seq = ("r", "u", "n", "o", "o", "b")
s1 = "-"
print(s1.join(seq))
# zip()和dict() 将列表转换成字典
keys = ["name", "age"]
values = ["adam", 15]
data2 = dict(zip(keys, values))
print(data2)
print(list(data2.keys()))
print(list(data2.values()))
列表推导式
列表推导式可以方便地生成可迭代对象
# 列表推导式
square1 = [n * n for n in range(1, 10)]
square2 = [n * 2 + 1 for n in range(1, 10) if n % 2 != 0]
print(square1, square2)
planets = ["Mecury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
newplanet = [a.upper() for a in planets if len(a)<6]
print(newplanet)
# 列表推导式等效代码
newplanet1 = []
for a in planets:
if len(a)<6:
newplanet1.append(a.upper())
print(newplanet1)
字符串操作
比较重要的有split和join和格式化字符串
# 字符串操作
# spilt可以以某个字符、字符串来分割字符
words = 'Pluto is a planet'
words_split = words.split(' ')
print(words_split)
datestr='1956-01-31'
year, month, day = datestr.split("-")
print(year, month, day)
# join可以用某个字符、字符串连接列表中每个元素
print("-".join(words.split(' ')))
words_join = "-".join(words_split)
print(words_join)
# 格式化字符串:使用{}.format()的方式,把某些变量、字符串填进{}中
position = 9
planet = 'Pluto'
print("{},you will alwasy be the {}th planet to me.".format(planet,position))
print("{0},you will alwasy be the {1}th planet to me. It's {1}th".format(planet,position))
字典推导式
跟列表推导式很像,是个方便生成字典的方法
# 字典推导式
planets = ["Mecury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"]
planet_to_initial = {planet:len(planet) for planet in planets}
print(planet_to_initial)
小结:
- Python区分大小写
- 语法不需要分号结束
- 对于if,while,for等控制语句要以冒号开始下面的语句,下面的语句要缩进
- 遍历可迭代对象用for 变量名 in 可迭代对象
- 列表[...]元组(...)字典{关键字:值},可以相互转换使用
- 变量的命名要注意避免使用Python关键字或者标识符
- 调试代码:
- 关键点多用print,以便知道变量在操作之后是什么输出结果
- 要看程序运行错误信息,一般是看最后面的信息。最前面是看哪一行出错
- Stack Overflow - Where Developers Learn, Share, & Build Careers 此网站可以解决一些疑难杂症,类似于论坛
- 断点调试:在代码行数左侧点击,出小红点后点文件-debug,f8逐行调试(f7会进入函数中逐行调试,f8则跳过函数调试)
- 切片:对列表等集合类型的数据可以成片获取([1:7]表示从索引1-6切片,[-3:-1]表示从列表后面倒数第3到最后一个)
- 推导式:将运算放入列表中,根据特定规则生成列表。([表达式 for 变量 in 可迭代对象 if 变量判断] 如:a = [x*x for x in range(10) if x%2!=0])
- 格式化字符串