Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
luotingshan
python3-learn
提交
7957a8e1
P
python3-learn
项目概览
luotingshan
/
python3-learn
与 Fork 源项目一致
Fork自
逆流者blog / python3-learn
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
python3-learn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7957a8e1
编写于
11月 05, 2020
作者:
逆流者blog
🇨🇳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Python3 基础用法
上级
8f9acbd6
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
196 addition
and
179 deletion
+196
-179
base/alice.py
base/alice.py
+4
-4
base/car.py
base/car.py
+34
-34
base/division.py
base/division.py
+14
-13
base/dog.py
base/dog.py
+12
-11
base/electric_car.py
base/electric_car.py
+61
-61
base/favorite_languages.py
base/favorite_languages.py
+1
-1
base/file_reader.py
base/file_reader.py
+12
-12
base/name_function.py
base/name_function.py
+6
-6
base/names.py
base/names.py
+12
-0
base/pizza.py
base/pizza.py
+2
-2
base/survey.py
base/survey.py
+17
-17
base/test_name_function.py
base/test_name_function.py
+14
-11
base/write_message.py
base/write_message.py
+6
-6
base/第8章 函数.py
base/第8章 函数.py
+1
-1
未找到文件。
base/alice.py
浏览文件 @
7957a8e1
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
)
base/car.py
浏览文件 @
7957a8e1
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
base/division.py
浏览文件 @
7957a8e1
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
base/dog.py
浏览文件 @
7957a8e1
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
...
...
base/electric_car.py
浏览文件 @
7957a8e1
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()
base/favorite_languages.py
浏览文件 @
7957a8e1
...
...
@@ -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
()
+
'.'
)
base/file_reader.py
浏览文件 @
7957a8e1
...
...
@@ -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
))
...
...
base/name_function.py
浏览文件 @
7957a8e1
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
base/names.py
浏览文件 @
7957a8e1
from
name_function
import
get_formatted_name
print
(
"Enter 'q' at any time to quit."
)
while
True
:
first
=
input
(
"
\n
Please 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
(
"
\t
Neatly formatted name: "
+
formatted_name
+
'.'
)
base/pizza.py
浏览文件 @
7957a8e1
def
make_pizza
(
size
,
*
toppings
):
print
(
size
)
print
(
toppings
)
\ No newline at end of file
print
(
size
)
print
(
toppings
)
base/survey.py
浏览文件 @
7957a8e1
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
base/test_name_function.py
浏览文件 @
7957a8e1
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
()
base/write_message.py
浏览文件 @
7957a8e1
...
...
@@ -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
base/第8章 函数.py
浏览文件 @
7957a8e1
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录