鱼C论坛

 找回密码
 立即注册
查看: 2223|回复: 1

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

[复制链接]
发表于 2022-6-26 21:55:22 | 显示全部楼层 |阅读模式

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

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

x
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[i:i*2]) and s.count(s[i:i*2]) == n/i:
            print(True)
            break
# for...else的用法,小甲鱼希望大家还没有忘记哦^o^
else:
    print(False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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,索引 [0:4] 是一个 FishC ;那么索引 [5:10], 也应该是一个 FishC,  即 if 的第一个判断
        # 得保证所有的片段都是 FishC, 即 if 的第二个判断, 不然 'FishCFishCFishCFishB', 也满足条件
        if s.startswith(s[i:i * 2]) and s.count(s[i:i * 2]) == n / i:
            print(True)
            break
# for...else的用法,小甲鱼希望大家还没有忘记哦^o^
else:
    print(False)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 00:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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