关于range函数
s = input("请输入一个有字母构成的字符串:asdasdasd")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)
###############################
为什么这个i 的值在这里面是3 ,而单独出来foriin range (1,5)又成了4??? 输入是? 歌者文明清理员 发表于 2023-3-14 19:10
输入是?
asdasdasd九个字符
我没仔细看代码熬for i in range(1,3)i不应该为1,2吗? 本帖最后由 歌者文明清理员 于 2023-3-14 19:16 编辑
秃头老贝比 发表于 2023-3-14 19:12
asdasdasd九个字符
程序不是正常的吗
你的程序应该是判断是否有重复吧
下次发代码记得用代码样式,不然有时候代码和论坛标签冲突的时候代码显示会出问题
s = input("请输入一个有字母构成的字符串:asdasdasd")
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) wyhpylc 发表于 2023-3-14 19:13
我没仔细看代码熬for i in range(1,3)i不应该为1,2吗?
是的,但是他循环完再输出的时候就是2了。 程序作用?我不知道你的需求是什么,就只能告诉你range的问题 歌者文明清理员 发表于 2023-3-14 19:15
程序不是正常的吗
你的程序应该是判断是否有重复吧
好的,源代码是这样的:
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)
秃头老贝比 发表于 2023-3-14 19:23
好的,源代码是这样的:
s = input("请输入一个由字母构成的字符串:")
没问题啊,结果一样 wyhpylc 发表于 2023-3-14 19:22
程序作用?我不知道你的需求是什么,就只能告诉你range的问题
课后作业,字符串(三)中的最后一个题,看不懂程序了。 秃头老贝比 发表于 2023-3-14 19:27
课后作业,字符串(三)中的最后一个题,看不懂程序了。
你不懂哪里?startswith?和count? wyhpylc 发表于 2023-3-14 19:29
你不懂哪里?startswith?和count?
懂了懂了。钻了牛角尖了,忘了是个循环了。 忘了吧break放进去了。 秃头老贝比 发表于 2023-3-14 19:34
懂了懂了。钻了牛角尖了,忘了是个循环了。
所以说,最佳给谁{:10_256:} wyhpylc 发表于 2023-3-14 19:34
所以说,最佳给谁
????? 歌者文明清理员 发表于 2023-3-14 22:45
?????
这个最佳绝了 本帖最后由 wyhpylc 于 2023-3-15 19:41 编辑
秃头老贝比 发表于 2023-3-14 19:34
忘了吧break放进去了。
下次可以看看谁贡献大,我词不达意了)抱歉抱歉! 歌者文明清理员 发表于 2023-3-14 22:45
?????
抱歉抱歉!对不起! 不好意思各位,第一次提问,操作不太熟练,,,{:10_245:}{:10_245:}{:10_245:}
页:
[1]