天恐星 发表于 2022-6-26 21:55:22

关于python 的29课的作业没看明白,求解说

s = input("请输入一个由字母构成的字符串:")
   
n = len(s)
for i in range(1, n//2+1):
    # 如果子字符串的长度为i,则n必须可以被i整除才行
    if n % i == 0:
      # 如果子字符串的长度为i,则i到i*2之间是一个重复的子字符串
      if s.startswith(s) and s.count(s) == n/i:
            print(True)
            break
# for...else的用法,小甲鱼希望大家还没有忘记哦^o^
else:
    print(False)

白two 发表于 2022-6-26 22:41:53

建议问问题的时候将问题也一并贴上, 不是今天闲的没事我才不会去把问题翻出来看
问问题是你问别人, 不是别人求着你把问题解决了, 所以最好上来就把问题抛清楚, 别让帮你的人还要麻烦的去找你的问题

# s = input("请输入一个由字母构成的字符串:")
s = 'FishCFishCFishCFishC'

n = len(s)
for i in range(1, n // 2 + 1):
    # 如果子字符串的长度为i,则整个字符串长度必须为 i 的倍数
    if n % i == 0:
      # 如果子字符串的长度为i,则i到i*2之间是一个重复的子字符串
      # 即该例, FishC, 长度为 5,索引 是一个 FishC ;那么索引 , 也应该是一个 FishC,即 if 的第一个判断
      # 得保证所有的片段都是 FishC, 即 if 的第二个判断, 不然 'FishCFishCFishCFishB', 也满足条件
      if s.startswith(s) and s.count(s) == n / i:
            print(True)
            break
# for...else的用法,小甲鱼希望大家还没有忘记哦^o^
else:
    print(False)
页: [1]
查看完整版本: 关于python 的29课的作业没看明白,求解说