本帖最后由 45gfg9 于 2020-3-18 23:33 编辑
Prev: Python3Ⅱ:控制结构
Next: Python3Ⅳ:异常 & 文件
索引贴
答案帖
Prev: Python3Ⅱ:控制结构
Next: Python3Ⅳ:异常 & 文件
1 代码重用
1.1 重用代码
代码重用 在任何编程语言中都是很重要的一部分。增加代码量使其更难维护。
一个编程大项目如果想要成功,就不能不遵循不要重复自己 ,或DRY,原则。我们之前已经见过这样的一种方法:通过使用循环。在这一章里,我们会再探索两个:函数和模块。
Part题:
遵守DRY原则使代码:
A. 永远循环
B. 更易维护
C. 质量低下且重复性高
1.2 函数(一)
你在之前的学习中已经用过函数 了。
任何语句,如果前面是词,后面有包含值的圆括号,那么这就是一个函数调用。
下面是你已经见过的一些例子:
```py
print("Hello world!")
range(2, 20)
str(12)
range(10, 20, 3)
```
Part题:
这个函数调用中有几个参数?
```py
range(0, 100, 5)
```
2 函数
2.1 函数(二)
除了用内置函数外,你可以用def语句创建你自己的函数。
下面是一个名为my_func的函数的例子。它不接受参数,并输出三次"spam"。它先被定义再被调用。函数内的语句只有在调用的时候才会执行。
```py
def my_func():
print("spam")
print("spam")
print("spam")
my_func()
```
结果:
```py
>>>
spam
spam
spam
>>>
```
Part题:
填空定义一个名hello的函数:
```py
___ hello() _
print("Hi!")
```
2.2 函数(三)
你必须在调用函数之前先定义函数,就像你在使用变量前必须先赋值。
```py
hello()
def hello():
print("Hello world!")
```
结果:
```py
>>>
NameError: name 'hello' is not defined
>>>
```
Part题:
重新排列代码,定义函数sayHi()并调用。
```py
1. def sayHi():
2. print("Hi!")
3. sayHi()
```
3 函数参数
3.1 参数(一)
所有目前为止我们见过的函数都是零参函数,调用时带着空的圆括号。
然而,大多数函数都要接受参数。
下面的例子定义了一个接受一个参数的函数。
```py
def print_with_exclamation(word):
print(word + "!")
print_with_exclamation("spam")
print_with_exclamation("eggs")
print_with_exclamation("python")
```
结果:
```py
>>>
spam!
eggs!
python!
>>>
```
Part题:
下面代码的结果?
```py
def print_double(x):
print(2 * x)
print_double(3)
```
3.2 参数(二)
你也可以定义有不止一个参数的函数;用逗号分隔。
```py
def print_sum_twice(x, y):
print(x + y)
print(x + y)
print_sum_twice(5, 8)
```
结果:
```py
>>>
13
13
>>>
```
Part题:
填空定义一个函数,接受两个参数,输出它们的积。
```py
___ print_mult(x, y) _
print(x * _)
```
3.3 参数(三)
函数参数在函数定义内可以当成变量来用,然而,在函数定义之外就用不了了。这也适用于其他在函数内创建的变量。
```py
def function(variable):
variable += 1
print(variable)
function(7)
print(variable)
```
结果:
```py
>>>
8
NameError: name 'variable' is not defined
>>>
```
Part题:
填空定义函数,当参数为偶数时输出"Yes",否则"No"。
```py
___ even(x):
if x%2 == 0:
_____ ("Yes")
_____
print("No")
```
4 从函数中返回
4.1 从函数中返回(一)
某些函数,像int或str,会返回一个值以供后续使用。
要让你的自定义函数做到这一点,你可以用return语句。
举例:
```py
def max(x, y):
if x >=y:
return x
else:
return y
print(max(4, 7))
z = max(8, 5)
print(z)
```
结果:
```py
>>>
7
8
>>>
```
Part题:
填空定义一个函数,比较它两个实参的长度,并返回短的那个。
```py
def shortest_string(x, y):
if len(x) <= ___(y):
______ x
else:
______ y
```
4.2 从函数中返回(二)
如果从函数中返回值,那么它就会停止执行。return语句后的任何语句都不会被执行。
多说无益:
```py
def add_numbers(x, y):
total = x + y
return total
print("看不到这条")
print(add_numbers(4, 5))
```
输出:
```py
>>>
9
>>>
```
Part题:
下面这个函数被调用后输出的最大数字是多少?
```py
def print_numbers():
print(1)
print(2)
return
print(4)
print(6)
```
5 注释 & 文档字符串
5.1 注释
注释 是使代码更易懂的注解。它不会影响代码运行。
在Python中,注释用井号 (#)创建。在那一行内它后面的所有字符都被忽略。
例:
```py
x = 365
y = 7
# 这是一行注释
print(x % y) # 求余
# print (x // y)
# 另一条注释
```
结果
```py
>>>
1
>>>
```
Part题:
填空注释掉文字。
```py
x = 8
_ 输出x
print(x)
```
5.2 文档字符串
文档字符串 (documentation strings) 用途与注释类似,都用来解释代码。然而它更具体,语法也不同。它是通过在函数定义的第一行写一个描述函数的多行字符串创建的。
```py
def shout(word):
"""
在字符串后加一个叹号
并输出
"""
print(word + "!")
shout("spam")
```
结果
```py
>>>
spam!
>>>
```
Part题:
文档字符串能包含多行文字么?( Y / N )
6 函数作对象
6.1 函数(四)
尽管函数与普通变量创建的方式不同,但函数也与其他类型的值无异。
它们可以(重新)赋值给变量,在之后就可以用这些标识符来引用。
```py
def multiply(x, y):
return x * y
a = 4
b = 7
operation = multiply
print(operation(a, b))
```
输出
```
>>>
28
>>>
```
Part题:
下面代码的输出?
```py
def shout(word):
return word + "!"
speak = shout
output = speak("shout")
print(output)
```
A. shout!
B. word!
C. speak!
6.2 函数(五)
函数同样能作其他函数的实参。
```py
def add(x, y):
return x + y
def do_twice(func, x, y):
return func(func(x, y), func(x, y))
a = 5
b = 10
print(do_twice(add, a, b))
```
结果
```py
>>>
30
>>>
```
Part题:
填空将函数square作为实参传给函数test。
```py
___ square(x):
return x * x
def test(func, x)_
print(func(x))
test(______, 42)
```
7 模块
7.1 模块(一)
模块 是人们写下来用于完成某个常见任务的一系列代码,例如生成随机数,或是数学方面的运算,等等。
使用模块的最基础方法就是将import 模块名加在你的代码上方,然后用模块名.变量的方法来访问模块中的某个变量。
举例,下面的例子导入了random模块生成随机数:
```py
import random
for i in range(5):
value = random.randint(1, 6)
print(value)
```
结果
```py
>>>
2
3
6
5
4>>>
```
Part题:
下面代码用到了哪个模块?
```py
import math
num = 10
print(math.sqrt(num))
```
A. sqrt
B. math
C. num
7.2 模块(二)
有时候你只需要使用模块中的某个成员,这时你可以用import的另一种形式。
此种形式为from 模块名 import 变量,之后这个变量就可以直接使用了,就像它是在你的代码中定义的一样。
```py
from math import pi
print(pi)
```
结果
```py
>>>
3.141592653589793
>>>
```
用逗号分隔列表导入多个对象。例如:
```py
from math import pi, sqrt
```
Part题:
填空只从math模块中导入cos和sqrt函数。
```py
____ math import _____ cos
```
7.3 模块(三)
尝试导入一个不可用的模块会产生ImportError 。
```py
import some_module
```
结果
```py
>>>
ImportError: No module named 'some_module'
>>>
```
Part题:
导入一个位置模块产生的是什么错误?
A.ModuleError
B. ImportError
C.UnknownModuleError
7.4 模块(四)
你可以用as关键字将模块或对象导入为不同的名字。这主要用于当模块或对象的名字很长或很迷惑人的时候。
例:
```py
from math import sqrt as square_root
print(square_root(100))
```
结果:
```py
>>>
10.0
>>>
```
Part题:
下面代码的输出是?
```py
import math as m
print(math.sqrt(25))
```
A. 5
B. 25
C. 产生错误
8 标准库 & pip
8.1 模块(五)
Python中的模块主要有三种类型:你自己写的,你从外部安装的,和Python自带的。
最后一种就叫做标准库 ,包含许多有用的模块。一些标准库中有用的模块有string、re、datetime、math、random、os、multiprocessing、subprocess、socket、email、json、doctest、unittest、pdb、argparse和sys。
能用标准库解决的问题包括字符串解析、数据序列化、测试、调试、日期操作、邮件、命令行参,还有很多!
Part题:
填空导入math模块。
```py
______ math
```
8.2 标准库
标准库中有些模块是由Python写成,有些是由C写成。大多数都是跨平台的,但也有些是Windows或Unix专用。
Part题:
Python自带模块也叫做?
A. 标准库
B. import
C. Unix
8.3 模块(六)
很多第三方Python模块都存储在Python包索引 (PyPI)中。
安装这些模块的最好办法就是使用一个叫做pip的程序。它默认会随较新的Python发行版一同安装。如果你没有,直接安装一个也不难。当你有它之后,从PyPI安装模块就变得很简单了。只要知道你想安装的库的名字,打开命令行(Windows是命令提示符),然后输入pip install 库名。完成后,就可以在你的代码中导入使用了。
用pip是在多数操作系统上安装库的常规手段,但是有的库有针对Windows的预编译二进制包。这些有用户界面的可执行文件让你像安装其他程序一样安装库。
Part题:
PyPI的意思是?
A.Python项目索引
B.Python包安装程序
C.Python包索引
期末考试
1. 填空定义一个函数,接受两个参数,返回小的那个。
```py
___ min(x, y):
if x <= y_
return x
else:
______ y
```
2. 重新排列代码,定义一个函数,计算从0到它的参数的数字之和。
```py
1. def sum(x):
2. res += i
3. for i in range(x):
4. res = 0
5. return res
```
3. 按照下面方式导入的randint函数应该怎么调用?
```py
from random import randint as rnd_int
```
A. randint
B. rnd_int
C. random.rnd_int
4. 下面代码输出的最大数字是多少?
```py
def print_nums(x):
for i in range(x):
print(i)
return
print_nums(10)
```
5. 下面代码的输出是?
```py
def func(x):
res = 0
for i in range(x):
res += i
return res
print(func(4))
```
Prev: Python3Ⅱ:控制结构
Next: Python3Ⅳ:异常 & 文件
2021.12 数据,可能有更多内容
索引贴
答案帖
Prev: Python3Ⅱ:控制结构
Next: Python3Ⅳ:异常 & 文件
1 代码重用
1.1 重用代码
一个编程大项目如果想要成功,就不能不遵循
质量低下且重复性高的代码被称作遵循WET原则,意指什么都写两遍 ,或我们享受打字 。
Part题:
遵守DRY原则使代码:
A. 永远循环
B. 更易维护
C. 质量低下且重复性高
1.2 函数(一)
你在之前的学习中已经用过
任何语句,如果前面是词,后面有包含值的圆括号,那么这就是一个函数调用。
下面是你已经见过的一些例子:
```py
print("Hello world!")
range(2, 20)
str(12)
range(10, 20, 3)
```
圆括号前的词是函数名,圆括号内的逗号分隔值是函数参数 。
Part题:
这个函数调用中有几个参数?
```py
range(0, 100, 5)
```
2 函数
2.1 函数(二)
除了用内置函数外,你可以用def语句创建你自己的函数。
下面是一个名为my_func的函数的例子。它不接受参数,并输出三次"spam"。它先被定义再被调用。函数内的语句只有在调用的时候才会执行。
```py
def my_func():
print("spam")
print("spam")
print("spam")
my_func()
```
结果:
```py
>>>
spam
spam
spam
>>>
```
每个函数内的代码块都以冒号 ( : ) 开头,并被缩进 。
Part题:
填空定义一个名hello的函数:
```py
___ hello() _
print("Hi!")
```
2.2 函数(三)
你必须在调用函数之前先定义函数,就像你在使用变量前必须先赋值。
```py
hello()
def hello():
print("Hello world!")
```
结果:
```py
>>>
NameError: name 'hello' is not defined
>>>
```
Part题:
重新排列代码,定义函数sayHi()并调用。
```py
1. def sayHi():
2. print("Hi!")
3. sayHi()
```
3 函数参数
3.1 参数(一)
所有目前为止我们见过的函数都是零参函数,调用时带着空的圆括号。
然而,大多数函数都要接受参数。
下面的例子定义了一个接受一个参数的函数。
```py
def print_with_exclamation(word):
print(word + "!")
print_with_exclamation("spam")
print_with_exclamation("eggs")
print_with_exclamation("python")
```
结果:
```py
>>>
spam!
eggs!
python!
>>>
```
如你所见,参数定义在圆括号内。
Part题:
下面代码的结果?
```py
def print_double(x):
print(2 * x)
print_double(3)
```
3.2 参数(二)
你也可以定义有不止一个参数的函数;用逗号分隔。
```py
def print_sum_twice(x, y):
print(x + y)
print(x + y)
print_sum_twice(5, 8)
```
结果:
```py
>>>
13
13
>>>
```
Part题:
填空定义一个函数,接受两个参数,输出它们的积。
```py
___ print_mult(x, y) _
print(x * _)
```
3.3 参数(三)
函数参数在函数定义内可以当成变量来用,然而,在函数定义之外就用不了了。这也适用于其他在函数内创建的变量。
```py
def function(variable):
variable += 1
print(variable)
function(7)
print(variable)
```
结果:
```py
>>>
8
NameError: name 'variable' is not defined
>>>
```
技术上来讲,形参 指函数定义中的变量,实参 指当函数被调用时作为参数的值。
Part题:
填空定义函数,当参数为偶数时输出"Yes",否则"No"。
```py
___ even(x):
if x%2 == 0:
_____ ("Yes")
_____
print("No")
```
4 从函数中返回
4.1 从函数中返回(一)
某些函数,像int或str,会返回一个值以供后续使用。
要让你的自定义函数做到这一点,你可以用return语句。
举例:
```py
def max(x, y):
if x >=y:
return x
else:
return y
print(max(4, 7))
z = max(8, 5)
print(z)
```
结果:
```py
>>>
7
8
>>>
```
return语句在函数定义外的地方不可使用。
Part题:
填空定义一个函数,比较它两个实参的长度,并返回短的那个。
```py
def shortest_string(x, y):
if len(x) <= ___(y):
______ x
else:
______ y
```
4.2 从函数中返回(二)
如果从函数中返回值,那么它就会停止执行。return语句后的任何语句都不会被执行。
多说无益:
```py
def add_numbers(x, y):
total = x + y
return total
print("看不到这条")
print(add_numbers(4, 5))
```
输出:
```py
>>>
9
>>>
```
Part题:
下面这个函数被调用后输出的最大数字是多少?
```py
def print_numbers():
print(1)
print(2)
return
print(4)
print(6)
```
5 注释 & 文档字符串
5.1 注释
在Python中,注释用井号 (#)创建。在那一行内它后面的所有字符都被忽略。
例:
```py
x = 365
y = 7
# 这是一行注释
print(x % y) # 求余
# print (x // y)
# 另一条注释
```
结果
```py
>>>
1
>>>
```
Python没有像C等语言中有的多行注释。
Part题:
填空注释掉文字。
```py
x = 8
_ 输出x
print(x)
```
5.2 文档字符串
```py
def shout(word):
"""
在字符串后加一个叹号
并输出
"""
print(word + "!")
shout("spam")
```
结果
```py
>>>
spam!
>>>
```
不像普通的注释,文档字符串在程序运行时会保留。这允许程序员在运行时检查这些注释。
Part题:
文档字符串能包含多行文字么?( Y / N )
6 函数作对象
6.1 函数(四)
尽管函数与普通变量创建的方式不同,但函数也与其他类型的值无异。
它们可以(重新)赋值给变量,在之后就可以用这些标识符来引用。
```py
def multiply(x, y):
return x * y
a = 4
b = 7
operation = multiply
print(operation(a, b))
```
输出
```
>>>
28
>>>
```
上面的例子将函数multiply赋给变量operation。现在,通过operation也可以调用函数了。
Part题:
下面代码的输出?
```py
def shout(word):
return word + "!"
speak = shout
output = speak("shout")
print(output)
```
A. shout!
B. word!
C. speak!
6.2 函数(五)
函数同样能作其他函数的实参。
```py
def add(x, y):
return x + y
def do_twice(func, x, y):
return func(func(x, y), func(x, y))
a = 5
b = 10
print(do_twice(add, a, b))
```
结果
```py
>>>
30
>>>
```
如你所见,do_twice函数以函数作实参,并在它的函数体内调用。
Part题:
填空将函数square作为实参传给函数test。
```py
___ square(x):
return x * x
def test(func, x)_
print(func(x))
test(______, 42)
```
7 模块
7.1 模块(一)
使用模块的最基础方法就是将import 模块名加在你的代码上方,然后用模块名.变量的方法来访问模块中的某个变量。
举例,下面的例子导入了random模块生成随机数:
```py
import random
for i in range(5):
value = random.randint(1, 6)
print(value)
```
结果
```py
>>>
2
3
6
5
4>>>
```
上面的代码用random模块中定义的randint函数输出1到6的范围内的5个随机数。
Part题:
下面代码用到了哪个模块?
```py
import math
num = 10
print(math.sqrt(num))
```
A. sqrt
B. math
C. num
7.2 模块(二)
有时候你只需要使用模块中的某个成员,这时你可以用import的另一种形式。
此种形式为from 模块名 import 变量,之后这个变量就可以直接使用了,就像它是在你的代码中定义的一样。
```py
from math import pi
print(pi)
```
结果
```py
>>>
3.141592653589793
>>>
```
用逗号分隔列表导入多个对象。例如:
```py
from math import pi, sqrt
```
用*导入模块中的所有对象。例:from math import *
一般来说不建议这样做,因为它有时会将你代码中的变量与外部模块中的变量混淆。
一般来说不建议这样做,因为它有时会将你代码中的变量与外部模块中的变量混淆。
Part题:
填空只从math模块中导入cos和sqrt函数。
```py
____ math import _____ cos
```
7.3 模块(三)
尝试导入一个不可用的模块会产生
```py
import some_module
```
结果
```py
>>>
ImportError: No module named 'some_module'
>>>
```
Part题:
导入一个位置模块产生的是什么错误?
A.
B. ImportError
C.
7.4 模块(四)
你可以用as关键字将模块或对象导入为不同的名字。这主要用于当模块或对象的名字很长或很迷惑人的时候。
例:
```py
from math import sqrt as square_root
print(square_root(100))
```
结果:
```py
>>>
10.0
>>>
```
Part题:
下面代码的输出是?
```py
import math as m
print(math.sqrt(25))
```
A. 5
B. 25
C. 产生错误
8 标准库 & pip
8.1 模块(五)
Python中的模块主要有三种类型:你自己写的,你从外部安装的,和Python自带的。
最后一种就叫做
能用标准库解决的问题包括字符串解析、数据序列化、测试、调试、日期操作、邮件、命令行参,还有很多!
Python大量的标准库是它作为一门语言的中流砥柱。
Part题:
填空导入math模块。
```py
______ math
```
8.2 标准库
标准库中有些模块是由Python写成,有些是由C写成。大多数都是跨平台的,但也有些是Windows或Unix专用。
我们不会讲到所有的标准库;原因很简单,模块真的太多了。标准库的全部文档都可以在www.python.org找到。
Part题:
Python自带模块也叫做?
A. 标准库
B. import
C. Unix
8.3 模块(六)
很多第三方Python模块都存储在
安装这些模块的最好办法就是使用一个叫做pip的程序。它默认会随较新的Python发行版一同安装。如果你没有,直接安装一个也不难。当你有它之后,从PyPI安装模块就变得很简单了。只要知道你想安装的库的名字,打开命令行(Windows是命令提示符),然后输入pip install 库名。完成后,就可以在你的代码中导入使用了。
用pip是在多数操作系统上安装库的常规手段,但是有的库有针对Windows的预编译二进制包。这些有用户界面的可执行文件让你像安装其他程序一样安装库。
输入pip命令时要在命令行,而不是Python解释器。
Part题:
PyPI的意思是?
A.
B.
C.
期末考试
1. 填空定义一个函数,接受两个参数,返回小的那个。
```py
___ min(x, y):
if x <= y_
return x
else:
______ y
```
2. 重新排列代码,定义一个函数,计算从0到它的参数的数字之和。
```py
1. def sum(x):
2. res += i
3. for i in range(x):
4. res = 0
5. return res
```
3. 按照下面方式导入的randint函数应该怎么调用?
```py
from random import randint as rnd_int
```
A. randint
B. rnd_int
C. random.rnd_int
4. 下面代码输出的最大数字是多少?
```py
def print_nums(x):
for i in range(x):
print(i)
return
print_nums(10)
```
5. 下面代码的输出是?
```py
def func(x):
res = 0
for i in range(x):
res += i
return res
print(func(4))
```
诈尸么
诈尸么
绝对是诈尸吧喂
诈尸么
绝对是诈尸吧喂
看答案啊
让我看看答案吧。
root写了什么高级内容 看不懂 我死了
为什么你的命名是lower_letter_with_
另外 分页可能更好?
另外 分页可能更好?
阴阳师元素祭祀 发表于 2020-1-10 17:28
root写了什么高级内容 看不懂 我死了
为什么你的命名是lower_letter_with_
啥lower_letter_with_
分页不会(
就是说,PHP也有份咯(划
万恶的回复可见!
本帖最后由 Chenwe_i_lin 于 2020-1-11 09:57 编辑
1. def return
2.def sum_(x): return sum(list(range(x)))
3.B
4.9
5.6
顺带 这里的东西不到整个语言能做的事的千分之一
Python的性能真的菜, golang教程来一个好吗秋梨膏
1. def return
2.def sum_(x): return sum(list(range(x)))
3.B
4.9
5.6
顺带 这里的东西不到整个语言能做的事的千分之一
Python的性能真的菜, golang教程来一个好吗秋梨膏
Chenwe_i_lin 发表于 2020-1-11 09:55
1. def return
2.def sum_(x): return sum(list(range(x)))
3.B
兄啊 我能怎么办啊
帖子标题搬运+汉化难道写得不清楚吗
这里是从零学啊 本来就是入门 要千分之第二干啥啊
Golang不会 告辞
能不能教一下后面的gui界面啊
Pywifi不能用了???
能不能教一下后面的gui界面啊