总结
《Python编程从入门到实践》
(实际这篇文章延后了整整一周才完成 )
第三章 列表简介
这里为了提高完整性,加入第3章 列表简介的内容。
列表声明:bicycles = [] ; bicycles[‘trek’,‘specialized’ …]
访问列表:
bicycles[0],bicycles[1]… bicycles[-1]//访问最后一个元素 bicycles[-2]//访问倒数第二个。。。
操作列表元素使大写,小写和title:bicycles[0].upper() bicycles[0].lower() bicycles[0].title()
在列表中添加元素:
1.在列表尾添加:bicycles.append(‘suzuki’)
2.在任何位置添加 bicycles.insert(0,‘suzuki’) //前者为索引0表示第一个位置
删除元素:
1.del bicycles[索引] //del语句
2.poped = bicycles.pop(索引可选)//默认弹出列表末尾元素,且值可以取到存在poped
3.bicycles.remove(‘suzuki’) //根据值来删除,若其中有多个相同值,只能删一个,想要全部删除用for循环
1.cars.sort() 永久性排序
2.sorted(cars) sorted方法临时排序
//按首字母小写字母abcdef…排序,均可加入 reverse = True 进行倒排
cars .reverse() 直接倒排,永久性,但可再调用一次恢复
第四章 操作列表
遍历列表:for dog in dogs:
…//python不用括号靠缩进体现结构
函数range(1,5,2)//生成一系列数字1表示从1开始,5表示到4结束,2表示步长为2,所以生成1,3
函数 list()//将range()生成的数字存入列表 为数字列表 例:digits = list(range(1,5,2)) 对于数字列表有min(digits) max(…) sum(…)
列表解析:
squares = [value**2 for value in range(1,11)]`
//等同于以下三行
squares = []
for value in range(1,11):
squares.append(value**2)
切片:
players[1,4]//第2个元素到第4个元素;
players[,4]//第1个元素到第4个元素;
players[1,]//第2个到最后一个元素;
players[-3,]//最后3个元素
复制列表:
friend_foods = my_foods//错,只是将friend_foods关联到my_foods的列表
正确复制语句:friend_foods = my_foods[:]
元组:类比列表用()标识,元组中的值定下来后不能再被修改 若要修改只能重新定义
第五章
if语句
if ==/!=/>/</>=/<=/in/not in :
elif:
elif:
…
else:
第六章 字典
声明:a ={‘k1’:‘v1’,‘k2’:v2}//v2为int
访问:a.[‘k1’]
添加: a.[‘k3’] = ‘v3’ #修改同理
删除: del a.[‘k3’]
字典遍历:
for k,v in a.**items()**
for k in a.**keys()** #for k in sorted(a.keys()) 按首字母abcd..排序
for v in a.**values()**#for v in set(a.values()) 去除其中重复的元素
字典列表
aliens = [{'color':'yellow','speed':'slow'} for alien in range(30)]
for alien in aliens[:5]:
print(alien)
字典中储存列表:
favorate_places = {
'Tom':['tibet','Japan'],
'Kate':['China'],
'Jack':['a','b','c'],
}
for name,places in favorate_places.items():
if len(places) == 1:
print(name + " favorate place is " + places[0].title())
else:
print(name + " favorate places are " )
for place in places:
print(place.title())
第七章 用户输入和while循环
age = input(“Tell me your age please?”)
#如果之后你想对age进行数字操作(如比较大小),需要age= int(age)
while …:
break
continue
第八章 函数
tips:给一个形参设默认值时一定要设置在没有默认值的形参后面
传递列表:def function_name(list_name)
想不改变原来的列表,即只传副本:
def function_name(list_name[:])
def a(*b) #*b接受若干值(元组)
def build_carinfo(model,manufacture,**car_infos):#**car_infos接受若干键值对(字典)
info = {}
info['Model'] = model
info['Manufacture'] = manufacture
for key,value in car_infos.items():
info[key] = value
return info
car = build_carinfo('subaru','outback',color = 'blue',tow_package = True,acceleration = 10)
print(car)
import module_name
import module_name as mn
调用其中函数时:module_name.function_name()
from module_name import function_name (as fn)
from module_name import * #会导入所有函数,不推荐
第九章 类
def __ init (self,a,b):
super. init __(self,a,b)
new1 = …/class_name()…
new2 = …
…
导入方式和函数导入方式基本一致
第十章 文件和异常
直接读取整个文件
read()
with open('pi_digits.txt') as file_object:
contends = file_object.read()
print(contends.rstrip())
逐行遍历文件
with open('pi_digits.txt') as file_object:
for line in file_object:
print(line.strip())
创建一个包含文件各行内容的列表在with块外使用
readlines()
with open('pi_digits.txt') as file_object:
lines = file_object.readlines()
for line in lines:
print(line.strip())
写
tips:1.write(“…\n”)
2.with open(file_name,‘w’)#默认是r 读,a是附加,w是覆盖写,r+是读写
异常
关注点:split()#划分单词
try:
。。。
except 某种error:
pass(不做任何处理)
else:
#正常逻辑代码
def count_words(filename):
"""Count how many words a file include"""
try:
with open(filename) as file_object:
contends = file_object.read()
except FileNotFoundError:
pass
else:
words = contends.split()
words_num = len(words)
print("The "+filename+" has about "+str(words_num)+" words.")
filenames = ['alice.txt','sadaasbjfehr.txt','kajbcavufbaef.rtf.word','pi_digits.txt']
for filename in filenames:
count_words(filename)
存储数据
存入文件:json.dump()
username = input("What's your name?")
filename = 'username.json'
with open(filename,'w') as f_obj:
json.dump(username,f_obj)
读取文件:json.load()
def jkasnx():
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
pass #return None
else:
return username
代码重构(理解):
def greet_user():
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
username = input("What is your name?")
with open(filename,'w') as f_obj:
json.dump(username,f_obj)
print("We will remmember you when you come back,"+username.title()+".")
else:
print("Welcome back : "+username.title())
def get_stored_username():
filename = 'username.json'
try:
with open(filename) as f_obj:
username = json.load(f_obj)
except FileNotFoundError:
pass #return None
else:
return username
def get_new_user_name():
username = input("What's your name?")
filename = 'username.json'
with open(filename,'w') as f_obj:
json.dump(username,f_obj)
return username
def greet_user():
username = get_stored_username()
if username:
print("Welcome back : "+username.title())
else:
username = get_new_user_name()
print("We will remmember you when you come back,"+username.title()+".")
第十一章 测试
tips:
1.import unittest
2.继承unittext.TestCase
3.调用断言函数测试:p193
常用:assertEqual(a,b);assertIn(item,list)
4.def setUp(self)创建一组要进行测试的数据、答案
#不用再在每个单元测试里分别声明测试类和答案
《Spring Boot实战》
第一章 入门
创建了一个springboot框架
《 Java核心技术(卷1)》
leetcode
W3CSchool
总结
just do it.