失败且常态 发表于 2022-11-5 14:06:31

为什么要加这段代码s.startswith(s[i:i*2])

本帖最后由 失败且常态 于 2022-11-5 15:45 编辑

题目:编写一个程序,判断输入的字符串是否由多个子字符串重复多次构成
s = input("请输入一个由字母构成的字符串:")
   
n = len(s)
for i in range(1, n//2+1):
    if n % i == 0:
      if s.count(s) == n/i:
            print(True)
            break
else:
    print(False)



s = input("请输入一个由字母构成的字符串:")
   
n = len(s)
for i in range(1, n//2+1):
    if n % i == 0:
      if s.startswith(s) and s.count(s) == n/i:
            print(True)
            break
else:
    print(False)
请问s.startswith(s)没有这段代码,程序一样可以正常运行那为什么要加这段代码

jackz007 发表于 2022-11-5 14:24:55

         这个代码的题目要求是什么?

失败且常态 发表于 2022-11-5 15:45:37

jackz007 发表于 2022-11-5 14:24
这个代码的题目要求是什么?

编写一个程序,判断输入的字符串是否由多个子字符串重复多次构成

jackz007 发表于 2022-11-5 16:07:18

失败且常态 发表于 2022-11-5 15:45
编写一个程序,判断输入的字符串是否由多个子字符串重复多次构成

      这样写,是不是就可以好理解一些呢?
s = input("请输入一个由字母构成的字符串:")
for i in range(1 , len(s) // 2 + 1) :
    if len(s) % i == 0:
      if s . count(s[: i]) == len(s) // i :
            print(True)
            break
else:
    print(False)
页: [1]
查看完整版本: 为什么要加这段代码s.startswith(s[i:i*2])