鱼C论坛

 找回密码
 立即注册
查看: 1019|回复: 4

[已解决]018课后作业,问题我注释出来了

[复制链接]
发表于 2020-5-29 16:50:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. def mFun(*param, base=3):
  2.     result = 0
  3.     for each in param:
  4.         result += each

  5.     result *= base
  6.    
  7.     print('结果是:', result)

  8. mFun(1, 2, 3, 4, 5, base=5)
复制代码


#第一题里面用for循环求param的和,请问能用sum()吗?如果要用是不是还需要额外创建空列表才能调用?


  1. def Narcissus():
  2.     for each in range(100, 1000):
  3.         temp = each
  4.         sum = 0
  5.         while temp:
  6.             sum = sum + (temp%10) ** 3
  7.             temp = temp // 10  # 注意这里用地板除

  8.         if sum == each:
  9.             print(each, end='\t')

  10. print("所有的水仙花数分别是:", end='')
  11. Narcissus()
复制代码


#这里对each不需要int()吗?这题前面出现过,当时没太注意,range遍历会只遍历整型(这是默认的吗?)还是我自己想歪了多虑了


  1. def findStr(desStr, subStr):
  2.     count = 0
  3.     length = len(desStr)
  4.     if subStr not in desStr:
  5.         print('在目标字符串中未找到字符串!')
  6.     else:
  7.         for each1 in range(length-1):      

  8. #这里(length-1)是什么意思呀

  9.             if desStr[each1] == subStr[0]:

  10. #[each1]是。。。不知道怎么表达了,列表吗?


  11.                 if desStr[each1+1] == subStr[1]:

  12. #这里上下两条都不太明白了,subStr[1]是切片了吗? 也变成列表了?
  13.                     count += 1
  14.                     
  15.         print('子字符串在目标字符串中共出现 %d 次' % count)

  16. desStr = input('请输入目标字符串:')
  17. subStr = input('请输入子字符串(两个字符):')
  18. findStr(desStr, subStr)
复制代码


第三题看不太明白了
最佳答案
2020-5-29 17:09:36
第一题里面用for循环求param的和,请问能用sum()吗?如果要用是不是还需要额外创建空列表才能调用?
可以用sum,不过练习效果下降,因为甲鱼哥希望你自己写出来,而不利用这些内置的;不需要创建空列表,直接 sum (param) 即可:
  1. def mFun(*param, base=3):
  2.     result = sum(param)
  3.     result *= base

  4.     print('结果是:', result)

  5. mFun(1, 2, 3, 4, 5, base=5)
复制代码
这里对each不需要int()吗?

each 是循环按顺序赋值为  100~1000的值 本身就是整型,不需要重新int,range就是拿去遍历整型滴


第三题:
这里(length-1)是什么意思呀
防止
  1. desStr[each1]
复制代码
的索引超出范围,引起报错
[each1]是。。。不知道怎么表达了,列表吗?
for 循环 的each1  遍历range里面的整数,就是整型不是列表
这里上下两条都不太明白了,subStr[1]是切片了吗? 也变成列表了?
subStr[1]叫索引,索引subStr里面的位置参数为 1 的元素

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-29 17:05:45 | 显示全部楼层
1,不需要,你可以直接print(sum(param) * base)
2,range的作用就是把数字变成可迭代对象,不用int是肯定的啊
3(1),因为后面要对each1加1,不减1的话会超出范围。
3(2),基础知识啊。。。索引
3(3),你这学杂了吧。。这个也是索引啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-29 17:07:05 | 显示全部楼层
qiuyouzhi 发表于 2020-5-29 17:05
1,不需要,你可以直接print(sum(param) * base)
2,range的作用就是把数字变成可迭代对象,不用int是肯定 ...

对对对  这  没给:冒号  怎么能联系到切片去   真是浆糊脑子哦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 17:09:36 | 显示全部楼层    本楼为最佳答案   
第一题里面用for循环求param的和,请问能用sum()吗?如果要用是不是还需要额外创建空列表才能调用?
可以用sum,不过练习效果下降,因为甲鱼哥希望你自己写出来,而不利用这些内置的;不需要创建空列表,直接 sum (param) 即可:
  1. def mFun(*param, base=3):
  2.     result = sum(param)
  3.     result *= base

  4.     print('结果是:', result)

  5. mFun(1, 2, 3, 4, 5, base=5)
复制代码
这里对each不需要int()吗?

each 是循环按顺序赋值为  100~1000的值 本身就是整型,不需要重新int,range就是拿去遍历整型滴


第三题:
这里(length-1)是什么意思呀
防止
  1. desStr[each1]
复制代码
的索引超出范围,引起报错
[each1]是。。。不知道怎么表达了,列表吗?
for 循环 的each1  遍历range里面的整数,就是整型不是列表
这里上下两条都不太明白了,subStr[1]是切片了吗? 也变成列表了?
subStr[1]叫索引,索引subStr里面的位置参数为 1 的元素

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-29 17:20:10 | 显示全部楼层
要是我,第一题,直接return sum(param) * base

第二,ecah 是根据遍历的类型来的,具体看遍历的是什么玩意


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-20 17:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表