2018.10.15——10.21

《Python编程从入门到实践》

10.15(周一)四章 五章

第三章 列表简介

这里为了提高完整性,加入第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.

猜你喜欢

转载自blog.csdn.net/qq_38689900/article/details/83246043