提交 7957a8e1 编写于 作者: 逆流者blog's avatar 逆流者blog 🇨🇳

Python3 基础用法

上级 8f9acbd6
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)
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
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
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
......
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()
......@@ -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() + '.')
......@@ -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))
......
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
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 + '.')
def make_pizza(size, *toppings):
print(size)
print(toppings)
\ No newline at end of file
print(size)
print(toppings)
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
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()
......@@ -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
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册