小甲鱼Python第十七讲课后习题
笔记:
def MyFun(x):
return x ** 3
y = 3
print(MyFun(y))
x是形参,y是实参。形参指的是函数创建和定义过程中小括号里的参数,而实参指的是函数在调用过程中传递进去的参数。
1. 函数文档和直接用“#”为函数写注释有什么不同?
给函数写文档是为了让别人可以更好的理解你的函数,所以这是一个好习惯:
def MyFirstFunction(name):
'函数文档在函数定义的最开头部分,用不记名字符串表示'
print('I love FishC.com!')
>>> MyFirstFunction.__doc__ #双低线
'函数文档在函数定义的最开头部分,用不记名字符串表示'
另外,我们用help()来访问这个函数也可以看到这个文档字符串:
>>> help(MyFirstFunction)
Help on function MyFirstFunction in module __main__:
MyFirstFunction(name)
函数文档在函数定义的最开头部分,用不记名字符串表示
2. 使用关键字参数,可以有效避免什么问题的出现呢?
关键字参数,是指函数在调用的时候,带上参数的名字去指定具体调用的是哪个参数,从而可以不用按照参数的顺序调用函数
3. 使用help(print)查看print()这个BIF有哪些默认参数?分别起到什么作用?
Help on built-in function print in module builtins:
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.
4. 默认参数和关键字参数表面最大的区别是什么?
默认参数是赋予形式参数默认值,关键字参数是使得实际参数与形参相对应而避免顺序错误引发的系统报错。
关键字参数是在函数调用的时候,通过参数名制定需要赋值的参数,这样做就不怕因为搞不清参数的顺序而导致函数调用出错。而默认参数是在参数定义的过程中,为形参赋初值,当函数调用的时候,不传递实参,则默认使用形参的初始值代替
动动手:
0. 编写一个符合以下要求的函数:
a) 计算打印所有参数的和乘以基数(base=3)的结果
b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
不会:
def Sum(*params,base=3):
result = 0
for i in params:
result += i
return result*base
题目要求:如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如153 = 1^3+5^3+3^3,因此153是一个水仙花数。编写一个程序,找出所有的水仙花数。
自己写的:
def hua():
for x in range(100,1000):
a =x%10
b =x%100//10
c =x //100
if x ==a**3+b**3+c**3:
print(x)
print(hua()) 小甲鱼:
def Daffodils():
print('所有的水仙花数为:',end='')
temp = 100
while temp < 1000:
if temp == (temp//100)**3 + ((temp%100)//10)**3 + (temp%10)**3:
print(temp,end=' ')
temp += 1
else:
temp += 1
print(Daffodils())
程序执行效果:
def findstr():
print('请输入目标字符串:',end='')
temp = input()
print('请输入子字符串(两个字符):',end='')
comp = input()
count = 0
i = 0
for i in range(len(temp)):
if temp[i] == comp[0] and temp[i+1] == comp[1]:
count += 1
i += 1
else:
i += 1
count = int(count)
print('子字符串在目标字符串中总共出现 %d 次'%count)
findstr() 小甲鱼:
def findStr(desStr, subStr):
count = 0
length = len(desStr)
if subStr not in desStr:
print('在目标字符串中未找到字符串!')
else:
for each1 in range(length):
if desStr[each1] == subStr[0]:
if desStr[each1 + 1] == subStr[1]:
count += 1 print('子字符串在目标字符串中共出现 %d 次' % count) desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
小甲鱼Python第十七讲课后习题的更多相关文章
- 小甲鱼Python第二十一讲课后习题
测试题: 0. 递归在编程上的形式是如何表现的呢? 在编程上,递归表现为函数调用本身这么一个行为. 1. 递归必须满足哪两个基本条件? 一. 函数调用自身二. 设置了正 ...
- 小甲鱼Python第七讲课后习题
0.if not(money < 100):上边这行代码相当于? if money>=100 1.assert 的作用是什么? assert “断言”,当这个关键字后边的条件为假的时候,程 ...
- 小甲鱼Python第四讲课后习题
1while语句中,当条件为真时,它会一直循环下去,比如下面的例子,不过可以用Ctral + C来强制结束 while 'C': print("i love you") 2.观察打 ...
- 小甲鱼Python第十一讲课后习题
0. 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案. old = [1, 2, 3, 4, 5]new = oldold = [6]print(new) 如果不上机操作,你觉得会 ...
- 小甲鱼Python第二十讲课后习题---021
笔记: 1.lambda表达式的作用: 1)Python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如说我们只是需要写一个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数然后 ...
- 小甲鱼Python第六讲课后习题
python中被看作假:FALSE none 0 ‘ ’ " " ( ) [ ] { },其他一切都被解释为真 0.Python 的 floor 除法现在使用“//”实现, ...
- 小甲鱼Python第二十三讲课后习题--025,字典
笔记: 1.字典是Python中唯一的映射类型 2.字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开. 3.可以用dict()直接创建字典,如di ...
- 小甲鱼Python第八讲课后习题
0. 下面的循环会打印多少次"I Love FishC"?
- 小甲鱼Python第十三讲课后题--014字符串
字符串的方法及注释 capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) ...
随机推荐
- 金融量化分析【day110】:NumPy-切片和索引
一.索引和切片 1.数组和标量之间的运算 2.同样大小的数组之间的运算 3.数组索引 4.数组切片 1.一维数组 2.多维数组 二.布尔索引 1.问题 给一个数组,选出数组中所有大于5的数 1.答案 ...
- Maven 学习总结(三) 之 依赖管理
聚合 为了要一次构建多个项目,而不是到每个模块目录下分别执行mvn命令.maven聚合这一特性就是为该需求服务的.为此我们需要创建一个额外的模块aggregator, 然后通过该模块构建整个项目的所有 ...
- nodejs和npm的关系【转】
node.js是javascript的一种运行环境,是对Google V8引擎进行的封装.是一个服务器端的javascript的解释器. 包含关系: nodejs中含有npm,比如说你安装好nodej ...
- OpenStack VS Kubernetes,谁是你心中的王者?
当下云计算的领域里热度最高的两个项目,无疑是OpenStack和Kubernetes.如果云计算是一个风起云涌的江湖,毫不夸张的说OpenStack和Kubernetes就是江湖里的泰山北斗.Op ...
- mysql-8.0.11安装步骤
1.下载好安装包:mysql-8.0.11-winx64.zip 2.解压到合适的目录,例如:C:\XQ\Soft\mysql-8.0.11-winx64 3.在目录下创建my.ini文件,配置bas ...
- 20165221-week2课上测试补做
week2-课上测试补做 测试一: 参考附图代码,编写一个程序 "week0201学号.c",判断一下你的电脑是大端还是小端. 提交运行结果"学号XXXX的笔记本电脑是X ...
- Spring Cloud 2-Feign 声明式服务调用(三)
Spring Cloud Feign 1. pom.xml 2. application.yml 3. Application.java 4. Client.java 简化RestTemplate调 ...
- 【原创】大叔问题定位分享(11)Spark中对大表子查询加limit为什么会报Broadcast超时错误
当两个表需要join时,如果一个是大表,一个是小表,正常的map-reduce流程需要shuffle,这会导致大表数据在节点间网络传输,常见的优化方式是将小表读到内存中并广播到大表处理,避免shuff ...
- sklearn.linear_model.LinearRegresion学习
sklearn线性模型之线性回归 查看官网 https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearR ...
- VMware虚拟机安装Linux后忘记root密码怎么办(三)
第一种方法如下: 1.Linux开机 按键盘e今日GRUB界面如下:(GRUB管理引导启动盘) 切换到原系统目录: chroot /sysroot/ 2.重新启动客户机 3.使用新密码登录成功! 第二 ...