鱼C论坛

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

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

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

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

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

x
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遍历会只遍历整型(这是默认的吗?)还是我自己想歪了多虑了

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[each1] == subStr[0]:

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


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

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

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

第三题看不太明白了
最佳答案
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[each1]
的索引超出范围,引起报错
[each1]是。。。不知道怎么表达了,列表吗?
for 循环 的each1  遍历range里面的整数,就是整型不是列表
这里上下两条都不太明白了,subStr[1]是切片了吗? 也变成列表了?
subStr[1]叫索引,索引subStr里面的位置参数为 1 的元素

想知道小甲鱼最近在做啥?请访问 -> 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),你这学杂了吧。。这个也是索引啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

对对对  这  没给:冒号  怎么能联系到切片去   真是浆糊脑子哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[each1]
的索引超出范围,引起报错
[each1]是。。。不知道怎么表达了,列表吗?
for 循环 的each1  遍历range里面的整数,就是整型不是列表
这里上下两条都不太明白了,subStr[1]是切片了吗? 也变成列表了?
subStr[1]叫索引,索引subStr里面的位置参数为 1 的元素

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 00:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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