Aber 发表于 2020-5-29 16:50:23

018课后作业,问题我注释出来了

def mFun(*param, base=3):
    result = 0
    for each in param:
      result += each

    result *= base
   
    print('结果是:', result)

mFun(1, 2, 3, 4, 5, base=5)


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


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

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

print("所有的水仙花数分别是:", end='')
Narcissus()


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


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

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

            if desStr == subStr:

#是。。。不知道怎么表达了,列表吗?


                if desStr == subStr:

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

desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)


{:10_250:} 第三题看不太明白了

qiuyouzhi 发表于 2020-5-29 17:05:45

1,不需要,你可以直接print(sum(param) * base)
2,range的作用就是把数字变成可迭代对象,不用int是肯定的啊
3(1),因为后面要对each1加1,不减1的话会超出范围。
3(2),基础知识啊。。。索引
3(3),你这学杂了吧。。这个也是索引啊

Aber 发表于 2020-5-29 17:07:05

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

对对对这没给:冒号怎么能联系到切片去   真是浆糊脑子哦{:10_254:}

Twilight6 发表于 2020-5-29 17:09:36

第一题里面用for循环求param的和,请问能用sum()吗?如果要用是不是还需要额外创建空列表才能调用?可以用sum,不过练习效果下降,因为甲鱼哥希望你自己写出来,而不利用这些内置的;不需要创建空列表,直接 sum (param) 即可:def mFun(*param, base=3):
    result = sum(param)
    result *= base

    print('结果是:', result)

mFun(1, 2, 3, 4, 5, base=5)
这里对each不需要int()吗?
each 是循环按顺序赋值为100~1000的值 本身就是整型,不需要重新int,range就是拿去遍历整型滴

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

Stubborn 发表于 2020-5-29 17:20:10

要是我,第一题,直接return sum(param) * base

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


页: [1]
查看完整版本: 018课后作业,问题我注释出来了