秃头老贝比 发表于 2023-3-14 19:08:16

关于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:17

输入是?

秃头老贝比 发表于 2023-3-14 19:12:26

歌者文明清理员 发表于 2023-3-14 19:10
输入是?

asdasdasd九个字符

wyhpylc 发表于 2023-3-14 19:13:23

我没仔细看代码熬for i in range(1,3)i不应该为1,2吗?

歌者文明清理员 发表于 2023-3-14 19:15:04

本帖最后由 歌者文明清理员 于 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)

秃头老贝比 发表于 2023-3-14 19:20:46

wyhpylc 发表于 2023-3-14 19:13
我没仔细看代码熬for i in range(1,3)i不应该为1,2吗?

是的,但是他循环完再输出的时候就是2了。

wyhpylc 发表于 2023-3-14 19:22:17

程序作用?我不知道你的需求是什么,就只能告诉你range的问题

秃头老贝比 发表于 2023-3-14 19:23:55

歌者文明清理员 发表于 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:26:34

秃头老贝比 发表于 2023-3-14 19:23
好的,源代码是这样的:
s = input("请输入一个由字母构成的字符串:")
   


没问题啊,结果一样

秃头老贝比 发表于 2023-3-14 19:27:52

wyhpylc 发表于 2023-3-14 19:22
程序作用?我不知道你的需求是什么,就只能告诉你range的问题

课后作业,字符串(三)中的最后一个题,看不懂程序了。

wyhpylc 发表于 2023-3-14 19:29:17

秃头老贝比 发表于 2023-3-14 19:27
课后作业,字符串(三)中的最后一个题,看不懂程序了。

你不懂哪里?startswith?和count?

秃头老贝比 发表于 2023-3-14 19:34:07

wyhpylc 发表于 2023-3-14 19:29
你不懂哪里?startswith?和count?

懂了懂了。钻了牛角尖了,忘了是个循环了。

秃头老贝比 发表于 2023-3-14 19:34:39

忘了吧break放进去了。

wyhpylc 发表于 2023-3-14 19:34:47

秃头老贝比 发表于 2023-3-14 19:34
懂了懂了。钻了牛角尖了,忘了是个循环了。

所以说,最佳给谁{:10_256:}

歌者文明清理员 发表于 2023-3-14 22:45:01

wyhpylc 发表于 2023-3-14 19:34
所以说,最佳给谁

?????

未泯 发表于 2023-3-15 09:45:47

歌者文明清理员 发表于 2023-3-14 22:45
?????

这个最佳绝了

wyhpylc 发表于 2023-3-15 19:33:27

本帖最后由 wyhpylc 于 2023-3-15 19:41 编辑

秃头老贝比 发表于 2023-3-14 19:34
忘了吧break放进去了。

下次可以看看谁贡献大,我词不达意了)抱歉抱歉!

wyhpylc 发表于 2023-3-15 19:41:28

歌者文明清理员 发表于 2023-3-14 22:45
?????

抱歉抱歉!对不起!

秃头老贝比 发表于 2023-3-16 21:04:11

不好意思各位,第一次提问,操作不太熟练,,,{:10_245:}{:10_245:}{:10_245:}
页: [1]
查看完整版本: 关于range函数