鱼C论坛

 找回密码
 立即注册
楼主: liuzhengyuan

[已解决]小白Python练习册(8)【鱼币福利】

[复制链接]
发表于 2020-4-28 15:35:56 | 显示全部楼层

好玩的刮刮乐
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 15:36:05 | 显示全部楼层
话说你怎么把帖子变成悬赏了?
我一直在最新帖子里等,好像没有啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 15:40:44 | 显示全部楼层
def substring(strs):
    arr=[]
    for i in range(0,len(strs)):
        for j in range(i+1,len(strs)+1):
            arr.append(strs[i:j])
    if arr.append(strs[i:j-1]) not in arr:
        return arr
   
s=input('请输入一个字符串:')
r=substring(s)
print(r)



今天咋突然变难了

评分

参与人数 1荣誉 +5 鱼币 +3 收起 理由
liuzhengyuan + 5 + 3 鱼C有你更精彩^_^

查看全部评分

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

使用道具 举报

发表于 2020-4-28 15:43:16 | 显示全部楼层
WangJS 发表于 2020-4-28 15:01
先用一个最简单的方法:

应该都能理解

第一个方法不通用
只能对长度是4的字符串使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 15:45:55 | 显示全部楼层
wuqramy 发表于 2020-4-28 15:43
第一个方法不通用
只能对长度是4的字符串使用

嗯,就是我的一个解题思路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 15:59:59 | 显示全部楼层
1469396970 发表于 2020-4-28 15:40
def substring(strs):
    arr=[]
    for i in range(0,len(strs)):

你这个最后一项是一个空的啊,再改改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 16:03:24 | 显示全部楼层
WangJS 发表于 2020-4-28 15:59
你这个最后一项是一个空的啊,再改改

emmmmm

def substring(strs):
    arr=[]
    for i in range(0,len(strs)):
        for j in range(i+1,len(strs)+1):
            arr.append(strs[i:j])
    return arr
   
s=input('请输入一个字符串:')
r=substring(s)
print(r)

现在好了,好像之前那一行多余了

评分

参与人数 1荣誉 +5 鱼币 +3 贡献 +2 收起 理由
WangJS + 5 + 3 + 2 今天我分多,多评点^_^

查看全部评分

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

使用道具 举报

发表于 2020-4-28 16:14:26 | 显示全部楼层
冰河星云 发表于 2020-4-28 15:09
这样不是更简单

(滑稽)

哇,兄弟鬼才
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 16:15:07 | 显示全部楼层
1469396970 发表于 2020-4-28 15:40
def substring(strs):
    arr=[]
    for i in range(0,len(strs)):

不好意思我没控制好难度(就当是拓展题吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 17:14:27 | 显示全部楼层
print("""a
b
c
d
ab
bc
cd
abc
bcd
abcd
""")

这样是不是更简单?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 17:34:44 | 显示全部楼层
乘号 发表于 2020-4-28 17:14
这样是不是更简单?

但是如果 s = 'as' 就不成立了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 17:46:59 | 显示全部楼层
老八秘制 发表于 2020-4-28 15:30
隐隐约约感觉zltzlt的每日一题有这个

有吗?,这是我自己想的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 17:47:18 | 显示全部楼层
这个我知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 17:49:01 | 显示全部楼层


答题有奖励哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 18:52:45 | 显示全部楼层
WangJS 发表于 2020-4-28 15:01
先用一个最简单的方法:

应该都能理解

建议把第一个 for 改成 range(1, len(s) + 1)

评分

参与人数 1贡献 +1 收起 理由
WangJS + 1

查看全部评分

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

使用道具 举报

发表于 2020-4-28 18:55:11 | 显示全部楼层
liuzhengyuan 发表于 2020-4-28 18:52
建议把第一个 for 改成 range(1, len(s) + 1)

for i in range(len(s)):
这样就行了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 18:58:51 | 显示全部楼层

不行。。。
你要考虑到 for 左闭右开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 19:01:06 | 显示全部楼层
liuzhengyuan 发表于 2020-4-28 18:58
不行。。。
你要考虑到 for 左闭右开

但……那样确实能运行
不信你试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-28 19:04:58 | 显示全部楼层
WangJS 发表于 2020-4-28 19:01
但……那样确实能运行
不信你试试

答案不对,且会出现不必要的空行
>>> def zichuan(s):
    for i in range(1,len(s)+1):
        for f in range(len(s)-i+1):
            print(s[f:f+i])

            
>>> zichuan('abcd')
a
b
c
d
ab
bc
cd
abc
bcd
abcd
>>> def zichuan(s):
    for i in range(len(s)):
        for f in range(len(s)-i+1):
            print(s[f:f+i])

            
>>> zichuan('abcd')





a
b
c
d
ab
bc
cd
abc
bcd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-28 19:06:02 | 显示全部楼层
liuzhengyuan 发表于 2020-4-28 19:04
答案不对,且会出现不必要的空行

你说的第三个代码啊
我以为第一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 18:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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