搜索
您的当前位置:首页《Python编程与实践》习题5答案

《Python编程与实践》习题5答案

来源:小侦探旅游网


实践问题5的答案

1. 当Python创建、修改和查找变量名时,都需要在一个保存变量名的空间中进行,这个空间叫做命名空间,也被叫做作用域。作用域分为局部作用域、嵌套作用域、全局作用域和内置作用域。

2. 局部作用域一般是声明在函数内部的变量,可以理解为一个局部变量,该变量只能在函数内部使用,超出范围,变量就不能使用。而嵌套作用域和局部作用域是相对的,嵌套作用域相对于更上层函数而言也是局部作用域。嵌套作用域与局部作用域的区别在于,对一个函数而言,局部作用域是定义在此函数内部的局部作用域,而嵌套作用域是定义在此函数的上一层函数的局部作用域。全局作用域一般是在函数外部声明的变量,被称为全局变量。全局变量的适用范围是整个.py文件。内置作用域是系统内固定模块里定义的变量。

3. 指的是函数中设置的默认参数。

4. 函数中的参数分为形式参数和实际参数,形式参数就是指在自定义函数时,函数名后面括号中的参数,而实际参数则是指调用函数时函数名后面括号中的参数。向函数传值的本质就是将实际参数的值传递给形式参数。

5. 模块是指一个包含所有自己定义的函数和变量的文件。而包可以简单理解为文件夹,使用包的方式跟模块也类似,但需要注意的是,当把文件夹当作包使用时,文件夹中需要包含__init__.py文件,主要是为了避免将文件夹名当作普通的字符串。

习题5答案

1

1.

def input_length(a):

if len(a) > 5:

print('输入字符串长度大于5')

else:

print('输入字符串长度小于5')

input_length('')

2.

def max_fun(a):

maxnum = a[0]

for i in range(1,len(a)):

if maxnum < a[i]:

maxnum = a[i]

2

return maxnum

3.

def fact(a):

n=1

if a == 0:

return 1

for i in range(1,a+1):

n = n*i

print(n)

return n

num = int(input('请输入一个正整数:'))

print(fact(num))

4. type()

3

5. 5

6.

Hello World!

Hello World!

Hello World!

Hello World!

Hello World!

7.

import math

def Grade(a,b):

a = float(a)

b = float(b)

grade = a*1/3+b*2/3

4

ave = math.ceil(grade)

if 90<=ave<=100:

return 'A'

if 80<=ave<=89:

return 'B'

if 70<=ave<=79:

return 'C'

if 60<=ave<=69:

return 'D'

if ave<=59:

return 'F'

a = input('请输入期中成绩:')

b = input('请输入期末成绩:')

5

grade = Grade(a,b)

print('最终成绩为:',grade)

8.

def max_min(score):

b = sorted(a)

del b[4]

del b[0]

return (b)

a = input('请输入五个分数').split(',')

num = max_min(a)

num = [float(num[i]) for i in range(3)]

print('中间的三个分数是:',num)

ave = (num[0]+num[1]+num[2])/3

6

print('平均成绩:',ave)

9. 形式参数就是指定义函数时函数名后面括号中的参数,而实际参数则是指调用函数时函数名后面括号中的参数。

10.

[1, 4, 9, 16, 25]

11.

[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)]

12. 它会产生回溯错误,因为函数中缺少“全局方”语句。13. 25

14.

def main():

n = getN()

print(str(n) + '!', \"是\

def getN():

7

while True:

n = eval(input(\"输入一个正整数: \"))

if isinstance(n, int) and (n > 0):

return n

else:

print(\"输入不是正整数.\")

def fact(n):

product = 1

for i in range(2, n + 1):

product *= i

return product

main()

15.

8

def main():

firstName = getFirstName()

lastName = getLastName()

currentSalary = getCurrentSalary()

newSalary = calculateNewSalary(currentSalary) displayResult(firstName, lastName, newSalary)

def getFirstName():

firstName = input(\"Enter first name: \") return firstName

def getLastName():

lastName = input(\"Enter last name: \")

return lastName

def getCurrentSalary():

9

currentSalary = float(input(\"Enter current salary: \"))

return currentSalary

def calculateNewSalary(currentSalary):

if currentSalary < 40000:

return (currentSalary * 1.05)

else:

return 2000 + currentSalary + (.02 * (currentSalary - 40000)) displayResult(firstName, lastName, newSalary):

print(\"New salary for {0} {1}: ${2:,.2f}\"

.format(firstName, lastName, newSalary))

main()

16.

def f(x)

return (x>0)

def 10

17.

def main():

number = eval(input(\"输入数字: \"))

reverse(number)

def reverse(number):

while number != 0:

remainder = number % 10

print(remainder, end = \"\")

number = number // 10

main()

18.

def addnum(num):

k = 0

11

a = list(str(num))

for i in a:

k = k + int(i)

print(k)

def main():

a = input('请输入一个整数')

addnum(a)

main()

19.

def sortnum(a,b,c):

listnum = [a,b,c]

listnum.sort()

for i in listnum:

12

print(i)

def main():

a,b,c = input('输入三个数字').split(',')

sortnum(a ,b ,c)

main()

20.

def displaynum(n):

for i in range(n+1):

for n in range(i,n+1):

print(' ',end='')

for m in range(i,0,-1):

print(m,end='')

print()

13

def main():

a = int(input('输入一个整数'))

displaynum(a)

main()

21.

import math

def area(n,s):

return n * s * s / math.tan(math.pi / n) / 4

def main():

n = int(input('输入边数'))

s = int(input('请输入边长'))

print('面积为:',area(n,s))

main()

14

22.

def addnum(n):

k = 0

a = 0

for i in range(1,n+1):

k = 1/i

a = a + k

print(a)

def main():

n = int(input('请输入一个整数:'))

addnum(n)

main()

23.

15

def delete(n):

a = list(n)

for i in a:

if i != 'r':

print(i,end='')

def main():

n = input('请输入一段英文句子')

delete(n)

main()

24.

def num4num():

for num in range(1000, 10000): list1 = list(str(num))

16

list1.reverse()

revNum = int(''.join(list1))

if revNum == 4 * num:

return num

break

print('这个四位数是:', num4num())

25.

def solution(a,b,c):

if a == 0:

print('a不能为0')

else:

delta = b ** 2 - (4 * a * c)

17

if delta < 0:

print(\"没有解\")

elif delta == 0:

sol = -b / (2 * a)

if int(sol) == sol:

print('解为: {0:,.0f}'.format(sol))

else:

print('解为: {0:,.4f}'.format(sol))

else:

sol1 = (-b + (delta ** 0.5)) / (2 * a)

sol2 = (-b - (delta ** 0.5)) / (2 * a)

if int(sol1) == sol1 and int(sol2) == sol2:

print('解为: {0:,.0f} 和 {1:,.0f}'.format(sol1, sol2))

18

else:

print('解为: {0:,.4f} 和 {1:,.4f}'.format(sol1, sol2))

def main():

a = float(input('输入a'))

b = float(input('输入b'))

c = float(input('输入c'))

solution(a,b,c)

main()

26.

def addnum():

k = 0

for i in range(1,1000001):

k=k+i

19

print(k)

addnum()

27.

def ave(a,b,c,d,e):

average = (a+b+c+d+e) / 5

print(average)

def main():

a = int(input('请输入成绩1:')) b = int(input('请输入成绩2:'))

c = int(input('请输入成绩3:'))

d = int(input('请输入成绩4:'))

e = int(input('请输入成绩5:'))

ave(a,b,c,d,e)

20

main()

28.

def money(balance,amountOfWithdrawal):

if (balance >= amountOfWithdrawal): balance -= amountOfWithdrawal print(\"新的余额 {0:,.2f}.\".format(balance)) else:

print(\"余额不足\")

def main():

balance = float(input(\"余额: \"))

amountOfWithdrawal = float(input(\"取款: \")) money(balance,amountOfWithdrawal)

main()

21

29.

def upper(letter):

if (len(letter) != 1) or (letter != letter.upper()):

print(\"请输入大写字母.\")

def main():

letter = input(\"请输入字母: \")

upper(letter)

main()

30.

import random

def main():

printMatrix(3)

def printMatrix(n):

22

for i in range(1, n + 1):

for j in range(1, n + 1):

print(random.randint(0, 1), end = \" \")

print()

main()

23

因篇幅问题不能全部显示,请点此查看更多更全内容

Top