小白Python练习册(8)【鱼币福利】
本帖最后由 liuzhengyuan 于 2020-4-28 18:20 编辑给定一个字符串 s,输出它的所有连续子串
输入:s = 'abcd'
输出:
a
b
c
d
ab
bc
cd
abc
bcd
abcd
https://xxx.ilovefishc.com/album/202004/16/091918caswgdtsemdtz82t.gif
有人说这已经不是小白级别的了{:10_266:}
但是我的答案是使用小白办法来写的{:10_257:}
答案(有注释):
**** Hidden Message *****
如果觉得有挑战性,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/album/202003/26/115014z7o47g8gxmd4lzjt.gif
def substring(strs):
sarr = []
for i in range(0,len(strs)):
for j in range(i+1,len(strs)+1):
sarr.append(strs)
return sarr
strs = substring(input('Input a string:'))
for i in strs:
print(i)
这已经不算小白级别了 def func(string):
l=string.__len__()
for i in range(l):
for j in range(i+1,l+1):
yield string
def main(s):
print(*func(s),sep='\n')
main('abcd') .... 本帖最后由 WangJS 于 2020-4-28 18:54 编辑
先用一个最简单的方法:
应该都能理解
s = 'abcd'
for i in range(len(s)):
print(s)
for i in range(len(s)-1):
print(s)
for i in range(len(s)-2):
print(s)
for i in range(len(s)-3):
print(s)
再试着用一个for循环:
s = 'abcd'
for i in range(1,5):
for f in range(len(s)-i+1):
print(s)
最后在按照题目要求变成函数
def zichuan(s):
for i in range(1,len(s)+1):
for f in range(len(s)-i+1):
print(s)
f = input('输入内容:')
zichuan(f) 。。。
def e8(s):
for wlen in range(1, len(s) + 1):
for pos in range(len(s) - wlen + 1):
print(s)
这好像不是小白级别了吧…… 冰河星云 发表于 2020-4-28 15:04
。。。
这好像不是小白级别了吧……
别看这么难,其实只要把握住方法就很容易了我把代码加了注释 liuzhengyuan 发表于 2020-4-28 15:06
别看这么难,其实只要把握住方法就很容易了我把代码加了注释
这样不是更简单
print("""a
b
c
d
ab
bc
cd
abc
bcd
abcd
""")
(滑稽{:10_256:}) 我……不会 weiter 发表于 2020-4-28 15:10
我……不会
其实很简单的,就像做数学题一样,只要找到方法{:10_257:}(你可以看看答案{:10_256:}) 本帖最后由 qiuyouzhi 于 2020-4-28 15:16 编辑
liuzhengyuan 发表于 2020-4-28 15:06
别看这么难,其实只要把握住方法就很容易了我把代码加了注释
最重要的是,我感觉小白把握不住方法。。。
def func(s):
for i in range(len(s)+1):
for j in range(i):
yield s
由于代码写的太淦,这里附上测试
def main():
a = tuple(func('abcd'))
b = tuple(e8('abcd'))
for each in a:
if each not in b:
print("FALSE!")
break
else:
print("TRUE!")
P.S: 你把yield改成print,然后输入一个特别长的字符串试试? liuzhengyuan 发表于 2020-4-28 15:11
其实很简单的,就像做数学题一样,只要找到方法(你可以看看答案)
也是,但我直接跳过基础去学界面
需要的时候才会返回去 zltzlt 发表于 2020-4-28 13:17
这已经不算小白级别了
拓展题{:10_245:} 冰河星云 发表于 2020-4-28 15:09
这样不是更简单
(滑稽)
你要通用啊 liuzhengyuan 发表于 2020-4-28 15:14
拓展题
我觉得还是得老王出题 qiuyouzhi 发表于 2020-4-28 15:20
我觉得还是得老王出题
{:10_260:} 隐隐约约感觉zltzlt的每日一题有这个{:10_245:} zltzlt 发表于 2020-4-28 13:17
这已经不算小白级别了
这个不是很简单吗{:10_260:} 投机取巧:
>>> from itertools import combinations as c
>>> result = []
>>> target = "abcd"
>>> result.append((target,))
>>> result.extend(list(c(target, 3)))
>>> result.extend(list(c(target, 2)))
>>> result.extend(list(c(target, 1)))
>>> result
[('abcd',), ('a', 'b', 'c'), ('a', 'b', 'd'), ('a', 'c', 'd'), ('b', 'c', 'd'), ('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd'), ('a',), ('b',), ('c',), ('d',)]
>>>