08-10章

第8章:函数
1、def 定义函数
2、形参、实参
3、位置实参、关键字实参、可给形参指定默认值
4、返回值,使用reture语句将值返回到调用函数的代码行
5、让实参变成可选的 将某个形参设置为空值
6、返回字典
7、向函数传递列表、在函数中修改列表、禁函数修改列表
8、传递任意数量的实参(在形参前加*)、
9、将函数存储在被称为模块的独立文件中,再将模块导入(import)到主程序中
导入特定的函数 form 模块 import 函数名
给函数指定别名 form 模块 import 函数名 as 别名
给模块指定别名 form 模块 as 别名
导入模块中的所有函数 form 模块 import *

第9章:类
1、创建类
class 类名(): 类名首字母大写
__init__方法 开头和末尾各有两个下划线
self 每个与类相关的方法调用都自动传递实参self,
它是指向实例本身的引用,让实例能够访问类中的属性和方法
2、根据类创建实例 实例名=类名(属性) 首字母大写为类,小写的名称为实例
访问属性 使用句点表示法
调用方法 使用句点表示法
创建多个实例
3、继承 如果要编写的类是另一个现成类的特殊版本,可使用继承。
一个类继承另一个类时,它将自动获得另一个类的所有属性和方法。
原有的类称为父类,新类称为子类。
定义子类时,必须在括号内指定父类的名称。
super()是一个特殊函数,将父类和子类关联起来。
给子类定义属性和方法
重写父类的方法
模拟类
4、导入类 导入单个类 form 模块 import 类名
在一个模块中存储多个类
从一个模块中导入多个类 form 模块 import 类名1,类名2
导入整个模块 import 模块
导入模块中的所有类 form 模块 import *
在一个模块中导入另一个模块

5、python标准库
6、驼峰命名法:类名中的每个单词的首字母都大写,而不使用下划线。
实例名和模块名都采用小写格式,并在单词之间加上下划线。

第10章:文件和异常
1、打开文件
with open(“文件路径\文件名”) as 对象名
变量=对象.read()
print(变量)
2、使用绝对路径,可以读取系统任何地方的文件。
如果不正常,需要在开头的单引号前加上r。
3、逐行读取:打开文件之后用for循环
4、创建一个包含文件各行内容的列表 变量=对象.readlines()
5、可以用方法replace()将字符串中的特定单词替换为另一个单词
6、写入文件:open()提供另一个实参:
读取模式(‘r’) 写入模式(‘w’) 附加模式(‘a’)——在原有文本的基础上添加。
将字符串写入文件: 对象名.write(“写入内容”)
只能将字符串写入到文件,要将数值存储在文本文件中,需要用函数str()转换。
7、异常:try-except
ZeroDivisionError 异常

try:
	print(5/0)
except ZeroDivisionError:
	print("You can't divide by zero!")

依赖于try 代码块成功执行的代码都应放到else 代码块中,如:

while True:
		first_number = input("\nFirst number: ")
		if first_number == 'q':
			break
		second_number = input("Second number: ")
		 try:
			answer = int(first_number) / int(second_number)
		except ZeroDivisionError:
			print("You can't divide by 0!")
		 else:
			print(answer)

FileNotFoundError 异常

filename = 'alice.txt'
try:
	with open(filename) as f_obj:
	contents = f_obj.read()
except FileNotFoundError:
	msg = "Sorry, the file " + filename + " does not exist."
	print(msg)

分析多个文件单词数:

def count_words(filename):
❶ """计算一个文件大致包含多少个单词"""
	try:
		with open(filename) as f_obj:
		contents = f_obj.read()
	except FileNotFoundError:
		msg = "Sorry, the file " + filename + " does not exist."
		print(msg)
	else:
	# 计算文件大致包含多少个单词
		words = contents.split()
		num_words = len(words)
		print("The file " + filename + " has about " + str(num_words) +	" words.")
		filename = 'alice.txt'
		
	count_words(filename)
	

失败时一声不吭:在except后不输出内容,用pass代替
8、存储数据
使用模块json 来存储数据
使用json.dump() 来存储
函数json.dump() 接受两个实参: 要存储的数据以及可用于存储数据的文件对象。

import json
numbers = [2, 3, 5, 7, 11, 13]
 filename = 'numbers.json'
 with open(filename, 'w') as f_obj:
	 json.dump(numbers, f_obj

使用json.load()来读取

import json
 filename = 'numbers.json'
 with open(filename) as f_obj:
	 numbers = json.load(f_obj)
print(numbers)

尝试从文件username.json中获取用户名, 因此我们首先编写一个尝试恢复用户名的try 代
码块。 如果这个文件不存在, 我们就在except 代码块中提示用户输入用户名, 并将其存储在username.json中, 以便程序再次运行时能够获取它

import json
# 如果以前存储了用户名, 就加载它
# 否则, 就提示用户输入用户名并存储它
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'll remember you when you come back, " + username + "!")
else:
	print("Welcome back, " + username + "!")

代码能够正确地运行, 但可做进一步的改进——将代码划分为一系列完成具体工作的函数。 这样的过程被称为重构
重构前:

import json
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'll remember you when you come back, " + username + "!")
	else:
			print("Welcome back, " + username + "!")
greet_user()

重构后:

import json
def get_stored_username():
	"""如果存储了用户名, 就获取它"""
--snip--
def get_new_username():
	"""提示用户输入用户名"""
	username = input("What is 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 + "!")
	else:
		username = get_new_username()
		print("We'll remember you when you come back, " + username + "!")
greet_user()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值