零基础学习Python 作业 第18章
2018-03-14 00:33
465 查看
============ CH18 homework ============
0 请问以下哪个是形参哪个是形参?
Answer: x 是形参,y是实参
1 函数文档和直接使用’#’有为函数写注释有什么不同?
Answer: 函数文档可以通过help进行函数名查询,但’#’注释的不行
2 使用关键字参数,可以有效避免什么问题出现呢?
Answer: 准确赋值,避免赋值错误, 可以不按顺序进行赋值
3 使用help(print)查看print()这个BIF有哪些默认参数?分别起到什么作用?
Answer:
4 默认参数和关键字参数表面最大的区别是什么?
Answer: 关键字参数是在函数调用的时候,通过函数名制定需要赋值的参数,这样做就不怕因为搞不清参数的顺序,
出现调用出错,而默认参数是在参数定义的过程中,为形参赋初值,当函数调用的时候,不传递实参,
不传递实参,则默认使用形参的初始值代替。
a) 计算打印所有参数的和乘以基数(base = 3)的结果
b) 如果参数中最后一个参数为(base = 5),则设定基数等于5,基数不参与求和计算。
Test Result
1 寻找3位数的水仙花数?编写对应函数
code
2 编写一个函数findstr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
例如:假定输入的字符串为’You cannot improve your past,
but you can improve your future. Once time is wasted, life is wasted.’
子字符串为’im’,函数执行后打印’子字符串在目标字符串中共出现3次’
0 请问以下哪个是形参哪个是形参?
def MyFun(x): return x ** 3 y = 3 print(MyFun(y))
Answer: x 是形参,y是实参
1 函数文档和直接使用’#’有为函数写注释有什么不同?
Answer: 函数文档可以通过help进行函数名查询,但’#’注释的不行
2 使用关键字参数,可以有效避免什么问题出现呢?
Answer: 准确赋值,避免赋值错误, 可以不按顺序进行赋值
3 使用help(print)查看print()这个BIF有哪些默认参数?分别起到什么作用?
Answer:
print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. # file: value, 比如一个文件; 或者系统标准输出,第一个参数如果有多个参数,作为收集参数,默认用空格隔开; # sep: 如果在值中间插入字符串,默认每个值之间是空格 # end: 最后一个值的最后默认是换行 # flush: 是否强制清除file或者说刷新流。
4 默认参数和关键字参数表面最大的区别是什么?
Answer: 关键字参数是在函数调用的时候,通过函数名制定需要赋值的参数,这样做就不怕因为搞不清参数的顺序,
出现调用出错,而默认参数是在参数定义的过程中,为形参赋初值,当函数调用的时候,不传递实参,
不传递实参,则默认使用形参的初始值代替。
Practice
0 编写一个符合以下要求的函数?a) 计算打印所有参数的和乘以基数(base = 3)的结果
b) 如果参数中最后一个参数为(base = 5),则设定基数等于5,基数不参与求和计算。
code
def pramsCompute(*prams): length = len(prams) base1 = 3 base2 = 5 result = 0 for each in prams: if prams[length - 1] != 5: result += each elif prams[length - 1] == 5: if each != 5: result += each if prams[length - 1] != 5: return result * base1 else: return result * base2
Test Result
>>> pramsCompute(5,2,3,1) 33 >>> pramsCompute(5,2,3,5) 25 >>> pramsCompute(5,2,5,5) 10 >>>
1 寻找3位数的水仙花数?编写对应函数
code
def ShuiXianNum(): print('[100~1000] 区间的水仙数有:', end = ' ') for i in range(100,1000): temp = i sum = 0 while temp: sum += (temp % 10) ** 3 temp = temp // 10 if sum == i: print(i, end = ' ')
>>> ShuiXianNum() [100~1000] 区间的水仙数有: 153 370 371 407
2 编写一个函数findstr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
例如:假定输入的字符串为’You cannot improve your past,
but you can improve your future. Once time is wasted, life is wasted.’
子字符串为’im’,函数执行后打印’子字符串在目标字符串中共出现3次’
def fi 4000 ndstr(deStr, subStr): count = 0 length = len(deStr) if subStr not in deStr: print('在目标字符串中未找到字符串', subStr, '!') else: for each1 in range(length-1): if deStr[each1] == subStr[0]: if deStr[each1 + 1] == subStr[1]: count += 1 print('子字符串在目标字符串中共出现 %d 次' % count) deStr = input('请输入目标字符串:') subStr = input('请输入子字符串(两个字符):') findstr(deStr, subStr)
相关文章推荐
- 零基础学习Python 作业 第28章
- 零基础学习Python 作业 第7-8章
- 零基础学习Python 作业 第4章
- python基础学习小作业(一)
- 零基础学习Python 作业 第20章
- 零基础学习Python 作业 第19章
- 零基础学习Python 作业 第11-12章
- 零基础学习Python 作业 第13章
- 零基础学习Python 作业 第22章
- 零基础学习Python 作业 第30章
- 零基础学习Python 作业 第2章
- 零基础学习Python 作业 第10章
- 零基础学习Python 作业 第21章
- 零基础学习Python 作业 第23-24章
- Python零基础学习 问题及作业 问题待续
- 零基础学习Python 作业 第15章
- 零基础学习Python 作业 第5章
- 零基础学习Python 作业 第14章
- 零基础学习Python 作业 第25章
- 零基础学习Python 作业 第26章