一、函数
1、了不起的魔术师:在你为完成练习 8-9 而编写的程序中,编写一个名为 make_great()的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the Great”。调用函数 show_magicians(),确认魔术师列表确实变了。
def make_great(l):
i=len(l)
for x in range(i):
content="the great "+str(l[x])
l[x]=content
def show_magicians(l):
for i in l:
print(i)
magicians=["ly","zxd","lwx"]
make_great(magicians)
show_magicians(magicians)
2、不变的魔术师:修改你为完成练习 8-10 而编写的程序,在调用函数 make_great()时,向它传递魔术师列表的副本。由于不想修改原始列表,请返回修改后 的列表,并将其存储到另一个列表中。分别使用这两个列表来调用 show_magicians(), 确认一个列表包含的是原来的魔术师名字,而另一个列表包含的是添加了字样“the Great”的魔术师名字。
def make_great(l1,l2):
while l1:
content="the great "+l1.pop()
l2.append(content)
def show_magicians(l1,l2):
for i in l1:
print(i)
print("*"*20)
for i in l2:
print(i)
magicians=["ly","zxd","lwx"]
magicians1=[]
make_great(magicians[:],magicians1)
show_magicians(magicians,magicians1)
3、三明治:编写一个函数,它接受顾客要在三明治中添加的一系列食材。这个 函数只有一个形参(它收集函数调用中提供的所有食材),并打印一条消息,对顾客点 的三明治进行概述。调用这个函数三次,每次都提供不同数量的实参。
def make_pizza(*toppings):
for i in toppings:
print("顾客需要"+str(i))
make_pizza('mushrooms', 'green peppers', 'extra cheese')
4、汽车:编写一个函数,将一辆汽车的信息存储在一个字典中。这个函数总是接 受制造商和型号,还接受任意数量的关键字实参。这样调用这个函数:提供必不可少的 信息,以及两个名称—值对,如颜色和选装配件。这个函数必须能够像下面这样进行调用:car = make_car('subaru', 'outback', color='blue', tow_package=True)
def make_car(maker,number,**message):
car_message={}
car_message["maker"]=maker
car_message["number"]=number
for key,value in message.items():
car_message[key]=value
return car_message
car = make_car('subaru', 'outback', color='blue', tow_package=True)
print(car)
二、类
1、餐馆:创建一个名为 Restaurant 的类,其方法__init__()设置两个属性: restaurant_name 和 cuisine_type。创建一个名为 describe_restaurant()的方法和一个 名为 open_restaurant()的方法,其中前者打印前述两项信息,而后者打印一条消息, 指出餐馆正在营业。 根据这个类创建一个名为 restaurant 的实例,分别打印其两个属性,再调用前述 两个方法。
class Restaurant():
def __init__(self,name,type):
self.restaurant_name=name;
self.cuisine_type=type;
def describe_restaurant(self):
print("姓名为:"+self.restaurant_name)
print("类型为:"+self.cuisine_type)
def open_restaurant(self):
print("正在营业")
restaurant=Restaurant("大榕树","chinese")
restaurant.describe_restaurant()
restaurant.open_restaurant()
2、就餐人数:在为完成练习 9-1 而编写的程序中,添加一个名为 number_served 的属性,并将其默认值设置为 0。根据这个类创建一个名为 restaurant 的实例;打印有 多少人在这家餐馆就餐过,然后修改这个值并再次打印它。 添加一个名为 set_number_served()的方法,它让你能够设置就餐人数。调用这个 方法并向它传递一个值,然后再次打印这个值。 添加一个名为 increment_number_served()的方法,它让你能够将就餐人数递增。 调用这个方法并向它传递一个这样的值:你认为这家餐馆每天可能接待的就餐人数。
class Restaurant():
def __init__(self,name,type):
self.restaurant_name=name;
self.cuisine_type=type;
self.number_served=0
def describe_restaurant(self):
print("姓名为:"+self.restaurant_name)
print("类型为:"+self.cuisine_type)
def open_restaurant(self):
print("正在营业")
def set_number_served(self,num):
self.number_served=num
print("正在就餐的人数为:"+str(self.number_served))
def increment_number_served(self,max):
if self.number_served<max:
self.number_served+=1
print("正在就餐的人数为:" + str(self.number_served))
else:
print("就餐已满")
restaurant=Restaurant("大榕树","chinese")
restaurant.set_number_served(20)
restaurant.increment_number_served(21)
restaurant.increment_number_served(21)
3、骰子:模块 random 包含以各种方式生成随机数的函数,其中的 randint()返回 一个位于指定范围内的整数,例如,下面的代码返回一个 1~6 内的整数: from random import randint x = randint(1, 6) 请创建一个 Die 类,它包含一个名为 sides 的属性,该属性的默认值为 6。编写一 个名为 roll_die()的方法,它打印位于 1 和骰子面数之间的随机数。创建一个 6 面的骰 子,再掷 10 次。 创建一个 10 面的骰子和一个 20 面的骰子
from random import randint
class Die():
def __init__(self,sides=6):
self.sides=sides
def roll_die(self):
x=randint(1,self.sides)
print(x)
die_six=Die()
die_six.roll_die()
die_ten=Die(10)
die_ten.roll_die()
die_twe=Die(20)
die_twe.roll_die()
三、文件
1、Python 学习笔记:在文本编辑器中新建一个文件,写几句话来总结一下你至 此学到的 Python 知识,其中每一行都以“In Python you can”打头。将这个文件命名为 learning_python.txt,并将其存储到为完成本章练习而编写的程序所在的目录中。编写一 个程序,它读取这个文件,并将你所写的内容打印三次:第一次打印时读取整个文件; 第二次打印时遍历文件对象;第三次打印时将各行存储在一个列表中,再在 with 代码 块外打印它们。
with open('learning_python.txt') as file_object:
line = file_object.read()
print("the first print")
print(line)
with open('learning_python.txt') as file_object:
print("the second print")
for line1 in file_object:
print(line1.strip())
with open('learning_python.txt') as file_object:
print("the third print")
lines=file_object.readlines()
for line2 in lines:
print(line2.strip())
2、读取你刚创建的文件 learning_python.txt 中的每一行,将其中的 Python 都替换为另 一门语言的名称,如 C。将修改后的各行都打印到屏幕上。
with open('learning_python.txt') as file_object:
line = file_object.read()
print(line.replace("python","c"))
3、访客名单:编写一个 while 循环,提示用户输入其名字。用户输入其名字后, 在屏幕上打印一句问候语,并将一条访问记录添加到文件 guest_book.txt 中。确保这个 文件中的每条记录都独占一行。
while True:
name=input("请输入姓名(输入quit退出):")
if name=="quit":
break
else:
print("你好,"+name)
with open('guest_book.txt','a') as file_object:
file_object.write(name+"访问\n")
4、加法运算:提示用户提供数值输入时,常出现的一个问题是,用户提供的是 文本而不是数字。在这种情况下,当你尝试将输入转换为整数时,将引发 TypeError 异 常。编写一个程序,提示用户输入两个数字,再将它们相加并打印结果。在用户输入的 任何一个值不是数字时都捕获 TypeError 异常,并打印一条友好的错误消息。对你编写 的程序进行测试:先输入两个数字,再输入一些文本而不是数字。
加法计算器:将你为完成上述 而编写的代码放在一个 while 循环中,让 用户犯错(输入的是文本而不是数字)后能够继续输入数字。
while True:
num1=input("请输入第一个数字:")
num2=input("请输入第二个数字:")
try:
sum=int(num1)+int(num2)
except ValueError:
print("输入错误,请重新输入")
else:
print("sum="+str(sum))
break
这篇博客主要介绍了Python编程中的函数使用,包括参数传递、函数返回值等概念;类的创建与应用,如定义属性和方法,以及如何创建和使用对象;还涵盖了文件操作的基础知识,如读取、写入和处理文本文件。通过具体的例子和练习,帮助读者深入理解Python编程的核心概念。
 2019.2.28&spm=1001.2101.3001.5002&articleId=88026544&d=1&t=3&u=eaa617ca03c14bd38da3763f92eaabda)
2164

被折叠的 条评论
为什么被折叠?



