From 7957a8e12c9f3d24fb53e6a050f41a8a94787c46 Mon Sep 17 00:00:00 2001 From: wushanghui Date: Thu, 5 Nov 2020 22:20:22 +0800 Subject: [PATCH] =?UTF-8?q?Python3=20=E5=9F=BA=E7=A1=80=E7=94=A8=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/alice.py | 8 +- base/car.py | 68 +++++----- base/division.py | 27 ++-- base/dog.py | 23 ++-- base/electric_car.py | 122 +++++++++--------- base/favorite_languages.py | 2 +- base/file_reader.py | 24 ++-- base/name_function.py | 12 +- base/names.py | 12 ++ base/pizza.py | 4 +- base/survey.py | 34 ++--- base/test_name_function.py | 25 ++-- base/write_message.py | 12 +- ...8\347\253\240 \345\207\275\346\225\260.py" | 2 +- 14 files changed, 196 insertions(+), 179 deletions(-) diff --git a/base/alice.py b/base/alice.py index 8282775..e3b312a 100644 --- a/base/alice.py +++ b/base/alice.py @@ -1,8 +1,8 @@ filename = 'alice.txt' try: - with open(filename) as f_obj: - contents = f_obj.read() + with open(filename) as f_obj: + contents = f_obj.read() except FileNotFoundError: - msg = 'Sorry, the file ' + filename + ' does not exist.' - print(msg) + msg = 'Sorry, the file ' + filename + ' does not exist.' + print(msg) diff --git a/base/car.py b/base/car.py index b34a204..12162c2 100644 --- a/base/car.py +++ b/base/car.py @@ -1,40 +1,40 @@ class Car(): - """一次模拟汽车的简单尝试""" - def __init__(self, make, model, year): - self.make = make - self.model = model - self.year = year - # 给属性指定默认值 - self.odometer_reading = 0 + """一次模拟汽车的简单尝试""" + def __init__(self, make, model, year): + self.make = make + self.model = model + self.year = year + # 给属性指定默认值 + self.odometer_reading = 0 - def get_descriptive_name(self): - """返回整洁的描述性信息""" - long_name = str(self.year) + ' ' + self.make + ' ' + self.model - return long_name.title() + def get_descriptive_name(self): + """返回整洁的描述性信息""" + long_name = str(self.year) + ' ' + self.make + ' ' + self.model + return long_name.title() - def read_odometer(self): - """打印一条指出汽车里程的消息""" - print('The Car has ' + str(self.odometer_reading) + ' miles on it.') + def read_odometer(self): + """打印一条指出汽车里程的消息""" + print('The Car has ' + str(self.odometer_reading) + ' miles on it.') - def update_odometer(self, mileage): - """将里程表读数设置为指定的值""" - self.odometer_reading = mileage + def update_odometer(self, mileage): + """将里程表读数设置为指定的值""" + self.odometer_reading = mileage - def increment_odometer(self, miles): - self.odometer_reading += miles + def increment_odometer(self, miles): + self.odometer_reading += miles -my_new_car = Car('audi', 'a4', 2016) -print(my_new_car) -print(my_new_car.get_descriptive_name()) -my_new_car.read_odometer() -# 修改属性的值 -my_new_car.odometer_reading = 23 -my_new_car.read_odometer() - -# 通过方法修改属性的值 -my_new_car.update_odometer(30) -my_new_car.read_odometer() -# 通过方法对属性的值进行递增 -my_new_car.increment_odometer(10) -my_new_car.read_odometer() - \ No newline at end of file +# my_new_car = Car('audi', 'a4', 2016) +# print(my_new_car) +# print(my_new_car.get_descriptive_name()) +# my_new_car.read_odometer() +# # 修改属性的值 +# my_new_car.odometer_reading = 23 +# my_new_car.read_odometer() +# +# # 通过方法修改属性的值 +# my_new_car.update_odometer(30) +# my_new_car.read_odometer() +# # 通过方法对属性的值进行递增 +# my_new_car.increment_odometer(10) +# my_new_car.read_odometer() + \ No newline at end of file diff --git a/base/division.py b/base/division.py index ee9da3c..b64373d 100644 --- a/base/division.py +++ b/base/division.py @@ -1,17 +1,18 @@ +print(5/0) print('得到两个数来进行除法运算') print("输入 'q' 退出") while True: - first_number = input('\n第一个数: ') - if first_number == 'q': - break - second_number = input('第二个数: ') - if second_number == 'q': - break - try: - answer = int(first_number) / int(second_number) - except ZeroDivisionError: - print("You can't divide by zero!") - else: - print(answer) - \ No newline at end of file + first_number = input('\n第一个数: ') + if first_number == 'q': + break + second_number = input('第二个数: ') + if second_number == 'q': + break + try: + answer = int(first_number) / int(second_number) + except ZeroDivisionError: + print("You can't divide by zero!") + else: + print(answer) + \ No newline at end of file diff --git a/base/dog.py b/base/dog.py index c05ef57..aedd13f 100644 --- a/base/dog.py +++ b/base/dog.py @@ -1,18 +1,18 @@ class Dog(): - """一次模拟小狗的简单尝试""" + """一次模拟小狗的简单尝试""" - def __init__(self, name, age): - """初始化属性name和age""" - self.name = name - self.age = age + def __init__(self, name, age): + """初始化属性name和age""" + self.name = name + self.age = age - def sit(self): - """模拟小狗被命令蹲下""" - print(self.name.title() + ' 现在蹲下!') + def sit(self): + """模拟小狗被命令蹲下""" + print(self.name.title() + ' 现在蹲下!') - def roll_over(self): - """模拟小狗被命令时打滚""" - print(self.name.title() + ' 打滚!') + def roll_over(self): + """模拟小狗被命令时打滚""" + print(self.name.title() + ' 打滚!') # 根据类创建实例 my_dog = Dog('哈士奇', 6) @@ -23,6 +23,7 @@ print('我的狗 ' + str(my_dog.age) + ' 岁了.') my_dog.sit() my_dog.roll_over() +print("------") # 创建多个实例 your_dog = Dog('泰迪', 2) # 访问属性 your_dog.name diff --git a/base/electric_car.py b/base/electric_car.py index 2ad13f6..2a674bc 100644 --- a/base/electric_car.py +++ b/base/electric_car.py @@ -1,76 +1,76 @@ class Car(): - """一次模拟汽车的简单尝试""" - def __init__(self, make, model, year): - self.make = make - self.model = model - self.year = year - # 给属性指定默认值 - self.odometer_reading = 0 + """一次模拟汽车的简单尝试""" + def __init__(self, make, model, year): + self.make = make + self.model = model + self.year = year + # 给属性指定默认值 + self.odometer_reading = 0 - def get_descriptive_name(self): - """返回整洁的描述性信息""" - long_name = str(self.year) + ' ' + self.make + ' ' + self.model - return long_name.title() + def get_descriptive_name(self): + """返回整洁的描述性信息""" + long_name = str(self.year) + ' ' + self.make + ' ' + self.model + return long_name.title() - def read_odometer(self): - """打印一条指出汽车里程的消息""" - print('The Car has ' + str(self.odometer_reading) + ' miles on it.') + def read_odometer(self): + """打印一条指出汽车里程的消息""" + print('The Car has ' + str(self.odometer_reading) + ' miles on it.') - def update_odometer(self, mileage): - """将里程表读数设置为指定的值""" - self.odometer_reading = mileage + def update_odometer(self, mileage): + """将里程表读数设置为指定的值""" + self.odometer_reading = mileage - def increment_odometer(self, miles): - self.odometer_reading += miles + def increment_odometer(self, miles): + self.odometer_reading += miles - def fill_gas_tank(self): - """普通汽车有油箱""" - print('This Car need a gas tank!') + def fill_gas_tank(self): + """普通汽车有油箱""" + print('This Car need a gas tank!') class Battery(): - """一次模拟电动汽车电瓶的简单尝试""" - def __init__(self, battery_size=70): - """初始化电瓶属性""" - self.battery_size = battery_size + """一次模拟电动汽车电瓶的简单尝试""" + def __init__(self, battery_size=70): + """初始化电瓶属性""" + self.battery_size = battery_size - def describe_battery(self): - """打印一条描述电瓶容量的消息""" - print('This Car has a ' + str(self.battery_size) + '-kwh battery.') + def describe_battery(self): + """打印一条描述电瓶容量的消息""" + print('This Car has a ' + str(self.battery_size) + '-kwh battery.') - def get_range(self): - """打印一条消息, 指出电瓶的续航里程""" - if self.battery_size == 70: - range = 240 - elif self.battery_size == 85: - range= 270 + def get_range(self): + """打印一条消息, 指出电瓶的续航里程""" + if self.battery_size == 70: + range = 240 + elif self.battery_size == 85: + range= 270 + + message = 'This car can go approximately ' + str(range) + ' miles on a full charge.' + print(message) - message = 'This car can go approximately ' + str(range) + ' miles on a full charge.' - print(message) - class ElectricCar(Car): - """ - 电动汽车的独特之处 - """ - def __init__(self, make, model, year): - """ - 初始化父类的属性 - 再初始化电动汽车特有的属性 - """ - super().__init__(make, model, year) - # 将实例用作属性 - self.battery = Battery() + """ + 电动汽车的独特之处 + """ + def __init__(self, make, model, year): + """ + 初始化父类的属性 + 再初始化电动汽车特有的属性 + """ + super().__init__(make, model, year) + # 将实例用作属性 + self.battery = Battery() - def fill_gas_tank(self): - """电动汽车没有油箱""" - print('This Car doesn‘s need a gas tank!') + def fill_gas_tank(self): + """电动汽车没有油箱""" + print('This Car doesn‘s need a gas tank!') -my_tesla = ElectricCar('tesla', 'model s', 2016) -print(my_tesla.get_descriptive_name()) -# 测试 给子类定义属性和方法 -# my_tesla.describe_battery() -# 测试 重写父类的方法 -my_tesla.fill_gas_tank() -# 测试 将实例用作属性 -my_tesla.battery.describe_battery() -my_tesla.battery.get_range() \ No newline at end of file +# my_tesla = ElectricCar('tesla', 'model s', 2016) +# print(my_tesla.get_descriptive_name()) +# # 测试 给子类定义属性和方法 +# # my_tesla.describe_battery() +# # 测试 重写父类的方法 +# my_tesla.fill_gas_tank() +# # 测试 将实例用作属性 +# my_tesla.battery.describe_battery() +# my_tesla.battery.get_range() diff --git a/base/favorite_languages.py b/base/favorite_languages.py index 5995cd9..e9b0cd0 100644 --- a/base/favorite_languages.py +++ b/base/favorite_languages.py @@ -8,5 +8,5 @@ favorite_languages['edward'] = 'ruby' favorite_languages['phil'] = 'python' for name, languages in favorite_languages.items(): - print(name.title() + "'s favorite languages is " + languages.title() + '.') + print(name.title() + "'s favorite languages is " + languages.title() + '.') diff --git a/base/file_reader.py b/base/file_reader.py index 6fa0f1e..769a742 100644 --- a/base/file_reader.py +++ b/base/file_reader.py @@ -3,38 +3,38 @@ """ # 读取整个文件 with open('china.txt') as file_object: - contents = file_object.read() - print(contents) - # rstrip() 去除文本末尾空行 - print(contents.rstrip()) + contents = file_object.read() + print(contents) + # rstrip() 去除文本末尾空行 + # print(contents.rstrip()) print('==================') # 逐行读取 filename = 'china.txt' with open(filename) as file_object: - print(file_object) - for line in file_object: - # 文件中的换行符也会读取出来 - print(line) + print(file_object) + for line in file_object: + # 文件中的换行符也会读取出来 + print(line) print('==================') # 创建一个包含文件各行内容的列表 # readlines() 表示读取文件中的每一行并将其储存在列表中 with open(filename) as file_object: - lines = file_object.readlines() + lines = file_object.readlines() for line in lines: - print(line.rstrip()) + print(line.rstrip()) print('==================') # 简单实用文件的内容 with open(filename) as file_object: - lines = file_object.readlines() + lines = file_object.readlines() c_str = '' for line in lines: - c_str += line.rstrip() + c_str += line.rstrip() print(c_str) print(len(c_str)) diff --git a/base/name_function.py b/base/name_function.py index 1a0b0d2..24df4d0 100644 --- a/base/name_function.py +++ b/base/name_function.py @@ -1,7 +1,7 @@ def get_formatted_name(first, last, middle=''): - """生成整洁的姓名""" - if middle: - full_name = first + ' ' + middle + ' ' + last - else: - full_name = first + ' ' + last - return full_name.title() \ No newline at end of file + """生成整洁的姓名""" + if middle: + full_name = first + ' ' + middle + ' ' + last + else: + full_name = first + ' ' + last + return full_name.title() \ No newline at end of file diff --git a/base/names.py b/base/names.py index e91380e..9792b90 100644 --- a/base/names.py +++ b/base/names.py @@ -1 +1,13 @@ from name_function import get_formatted_name + +print("Enter 'q' at any time to quit.") +while True: + first = input("\nPlease give me a first name: ") + if first == 'q': + break + last = input("Please give me a last name: ") + if last == 'q': + break + + formatted_name = get_formatted_name(first, last) + print("\tNeatly formatted name: " + formatted_name + '.') diff --git a/base/pizza.py b/base/pizza.py index 17e3742..55e4ab2 100644 --- a/base/pizza.py +++ b/base/pizza.py @@ -1,3 +1,3 @@ def make_pizza(size, *toppings): - print(size) - print(toppings) \ No newline at end of file + print(size) + print(toppings) diff --git a/base/survey.py b/base/survey.py index 8a16749..f91786b 100644 --- a/base/survey.py +++ b/base/survey.py @@ -1,20 +1,20 @@ class AnonymousSurvey(): - """收集匿名调查问卷的答案""" - def __init__(self, question): - """存储一个问题, 并为存储答案做准备""" - self.question = question - self.responses = [] + """收集匿名调查问卷的答案""" + def __init__(self, question): + """存储一个问题, 并为存储答案做准备""" + self.question = question + self.responses = [] - def show_question(self): - """显示调查问卷""" - print(self.question) + def show_question(self): + """显示调查问卷""" + print(self.question) - def store_response(self, new_response): - """存储单份调查答卷""" - self.responses.append(new_response) - - def show_results(self): - """显示收集到的所有答卷""" - print('Survey results: ') - for response in self.responses: - print('- ' + response) \ No newline at end of file + def store_response(self, new_response): + """存储单份调查答卷""" + self.responses.append(new_response) + + def show_results(self): + """显示收集到的所有答卷""" + print('Survey results: ') + for response in self.responses: + print('- ' + response) \ No newline at end of file diff --git a/base/test_name_function.py b/base/test_name_function.py index 9479a4f..3618f77 100644 --- a/base/test_name_function.py +++ b/base/test_name_function.py @@ -1,17 +1,20 @@ import unittest from name_function import get_formatted_name + class NamesTestCase(unittest.TestCase): - """测试name_function.py""" + """测试name_function.py""" + + def test_first_last_name(self): + """能够正确地处理像Janis Joplin这样的姓名吗?""" + formatted_name = get_formatted_name('janis', 'joplin') + self.assertEqual(formatted_name, 'Janis Joplin') + + +def test_first_middle_last_name(self): + """能够正确地处理像Wolfgang Amadeus Mozart这样的姓名吗?""" + formatted_name = get_formatted_name('wolfgang', 'mozart', 'amadeus') + self.assertEqual(formatted_name, 'Wolfgang Amadeus Mozart') - def test_first_last_name(self): - """能够正确地处理像Janis Joplin这样的姓名吗?""" - formatted_name = get_formatted_name('janis', 'joplin') - self.assertEqual(formatted_name, 'Janis Joplin') - def test_first_middle_last_name(self): - """能够正确地处理像Wolfgang Amadeus Mozart这样的姓名吗?""" - formatted_name = get_formatted_name('wolfgang', 'mozart', 'amadeus') - self.assertEqual(formatted_name, 'Wolfgang Amadeus Mozart') - -unittest.main() \ No newline at end of file +unittest.main() diff --git a/base/write_message.py b/base/write_message.py index 007f587..50bf757 100644 --- a/base/write_message.py +++ b/base/write_message.py @@ -2,12 +2,12 @@ filename = 'programming.txt' # w 表示写入模式, 还有 r 读取模式, a 附加模式, r+读取和写入文件的模式, 省略模式实参,默认为只读 with open(filename, 'w') as file_object: - # 多条语句可以写入多行 - file_object.write('我喜欢编程.\n') - file_object.write('我喜欢创建一个新的游戏.\n') + # 多条语句可以写入多行 + file_object.write('我喜欢编程.\n') + file_object.write('我喜欢创建一个新的游戏.\n') # 附加到文件, 就是给文件添加内容, 而不是覆盖 with open(filename, 'a') as file_object: - # 多条语句可以写入多行 - file_object.write('我喜欢python.\n') - file_object.write('我喜欢java.') \ No newline at end of file + # 多条语句可以写入多行 + file_object.write('我喜欢python.\n') + file_object.write('我喜欢java.') \ No newline at end of file diff --git "a/base/\347\254\2548\347\253\240 \345\207\275\346\225\260.py" "b/base/\347\254\2548\347\253\240 \345\207\275\346\225\260.py" index 1f00cd8..27fe187 100644 --- "a/base/\347\254\2548\347\253\240 \345\207\275\346\225\260.py" +++ "b/base/\347\254\2548\347\253\240 \345\207\275\346\225\260.py" @@ -73,7 +73,7 @@ def print_models(unprinted_designs, completed_models): def show_completed_models(completed_models): """显示打印好的所有模型""" - print('\n') + print('\n打印好的模型:') for completed_model in completed_models: print(completed_model) -- GitLab