一、函数

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"]=makercar_message["number"]=numberfor key,value in message.items():car_message[key]=valuereturn 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=0def 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=numprint("正在就餐的人数为:"+str(self.number_served))def increment_number_served(self,max):if self.number_served<max:self.number_served+=1print("正在就餐的人数为:" + 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=sidesdef 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":breakelse: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之路(二) 2019.2.28相关推荐

  1. Python之路(二)Python基础

    运算符 算数运算符 |序号|符号|描述|实例| |--| |1|+|加,两个操作数相加|6 + 3 输出结果9| |2|-|减,两个操作数相减|6 - 3 输出结果3| |3||乘,两个操作数相乘|6 ...

  2. python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...

    教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql Easy_install安装MySQLdb 很简单,以至于我不晓得该怎么说.一句话. sodu ...

  3. Python基础(二)完结

    今天分享又来了呀.ღ( ´・ᴗ・` ) 一起学习进步ღゝ◡╹)ノ♡ 关注公众号,回复"资料全集",不定期最新大数据业内资讯. ❤:在这里跟我一起学习技术.职场.人生.原理.健身.摄 ...

  4. Python之路【第八篇】:堡垒机实例以及数据库操作

    Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient 用于 ...

  5. 【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》

    文章目录 图书前言 图书简介 图书作者.简介 图书好评 图书目录 总结:本人选择此图书的意义 图书前言 光阴似箭,岁月如梭.转眼之间,距离本书最早的电子书出版已经过去了三年之久.承蒙广大读者的厚爱,电 ...

  6. Python之路 33:进程与线程概念及基础使用

    关于多进程与多线程基础的学习,必要的概念很多,但我觉得不着急去一次性去死记 多进程与多线程的基础使用很简单,几个方法只需上手 运行一下 文中的代码就可以很快熟悉起来 进阶部分篇幅有点长,放在了另一篇文 ...

  7. python之路——模块和包

    一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编 ...

  8. python 之路,Day11 (下)- sqlalchemy ORM

    python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 ...

  9. Python之路【第五篇】:面向对象及相关

    Python之路[第五篇]:面向对象及相关 Python之路[第五篇]:面向对象及相关 面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance ...

  10. Python之路【第一篇】:Python简介和入门

    Python之路[第一篇]:Python简介和入门 Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗 ...

最新文章

  1. TensorFlow反向传播算法实现
  2. 基于mpi的奇偶排序_并行程序设计(第2版)pdf
  3. 【设计模式】 模式PK:策略模式VS状态模式
  4. 软件开发人员薪资标准 人月_IT从业者培训前后薪资差距近3000块钱
  5. 中级工程师考试2019——地图制图与地理信息系统
  6. 关于计算机的内存的一点常识
  7. linux系统移植篇(一)—— linux系统组成
  8. 利用哈希表实现电话号码查询系统
  9. 坐标测量机的定位误差和测长不确定度有何区别,如何表示?
  10. JavaScript三种弹出框(alert、confirm、prompt),一次性全弄清!
  11. 苦尽甘来 一个月学通JavaWeb(六 XML)
  12. DDIA - 读书笔记
  13. printf的计算和输出顺序
  14. 3Dmax场景小房子—打造完整还原游戏场景
  15. 2015小米校招技术类笔试题
  16. 怎么计算java对象的大小?
  17. 深入研究simulink建模与仿真之信号线上的几种不同的图标
  18. 省市区json格式数据及异步请求json数据
  19. 企业现金流和资金链区别
  20. 上海配眼镜的闭坑分享,配30副眼镜的资深眼镜控聊聊心得

热门文章

  1. FUKE 1524 参考测温仪技术规格
  2. Golang 导出Excel下载,文件下载
  3. phpexcel.php手册,PhpExcel中文帮助手册|PhpExcel使用方法
  4. python电商数据挖掘_Python 爬取淘宝商品数据挖掘分析实战
  5. 洛谷P5365 [SNOI2017] 英雄联盟 题解
  6. 笑话一则,中国式的笑话
  7. Solr环境搭建,下载和安装
  8. 初中化学知识点总结 基本概念和基本理论
  9. 什么是Ubuntu的使命?
  10. 能动口“布”动手 OPPO小布打造便捷高效智能生活