鱼C论坛

 找回密码
 立即注册
查看: 3127|回复: 9

[已解决]第十九讲,for循环里面each代表什么意思,求讲解

[复制链接]
发表于 2020-2-28 18:16:47 | 显示全部楼层 |阅读模式

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

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

x
0. 编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)%Dcp0
方法一:版权属于:https://fishc.com.cn
def palindrome(string):
    length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
        if string[each] != string[last]:
            flag = 0
        last -= 1

    if flag == 1:
        return 1
    else:
        return 0

string = input('请输入一句话:')
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')

第一行,先命名函数
第二行计算字符串长度
第三行是计算最新字符串的长度吗?
length//2相当于把字符串对折?
for循环中,each是什么意思?
最佳答案
2020-2-29 09:42:48
714536074 发表于 2020-2-28 22:42
朋友,首先很感谢你的解答。

刚刚手动写了一个字符串“上回上”写了一下过程,目前还有一点问题是:

1,访问列表不是要有一个下标吗,each就是干这个的
2,那一部分不在函数里,所以是在if判断语句里调用,然后看返回值。
如果有帮助,请设最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-28 18:18:21 | 显示全部楼层
1. 可以这么理解,将字符串分成两半。

2. each 表示从 0 到 length + 1 的每一个数。each 只是一个变量名,可以换成其他任意合法的标识符。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 18:21:21 | 显示全部楼层
1,length就是字符串的长度,//2就是字符串的中间
2,each可以是任何一个名字,它只是一个变量
如果有帮助,请设最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-2-28 20:59:07 | 显示全部楼层
qiuyouzhi 发表于 2020-2-28 18:21
1,length就是字符串的长度,//2就是字符串的中间
2,each可以是任何一个名字,它只是一个变量
如果有帮 ...

each是指 输入的字符串吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-28 21:13:18 | 显示全部楼层
714536074 发表于 2020-2-28 20:59
each是指 输入的字符串吗?

是输入的字符串的每一个字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 22:41:17 | 显示全部楼层
朋友,首先很感谢你的解答。

刚刚手动写了一个字符串“上回上”写了一下过程,目前还有一点问题是:
length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
        if string[each] != string[last]:

上面这个部分中,for语句里,range(length)中length是指“length=len(string)”还是“length//=2”的值呀?

个人理解:range(length)中length是指“length=len(string)”

另外还有一个问题是,是要所有字符串的return都返回“1”之后,
再执行
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')      
这个部分吗?


还有就是 each 是代表字符串中的每一个字符呢,还是说是range范围中的数字呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 22:42:32 | 显示全部楼层
qiuyouzhi 发表于 2020-2-28 21:13
是输入的字符串的每一个字符

朋友,首先很感谢你的解答。

刚刚手动写了一个字符串“上回上”写了一下过程,目前还有一点问题是:
length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
        if string[each] != string[last]:

上面这个部分中,for语句里,range(length)中length是指“length=len(string)”还是“length//=2”的值呀?

个人理解:range(length)中length是指“length=len(string)”

另外还有一个问题是,是要所有字符串的return都返回“1”之后,
再执行
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')      
这个部分吗?


还有就是 each 是代表字符串中的每一个字符呢,还是说是range范围中的数字呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-28 22:45:04 | 显示全部楼层
zltzlt 发表于 2020-2-28 18:18
1. 可以这么理解,将字符串分成两半。

2. each 表示从 0 到 length + 1 的每一个数。each 只是一个变量 ...

刚刚手动写了一个字符串“上回上”写了一下过程,目前还有一点问题是:
length = len(string)
    last = length-1
    length //= 2
    flag = 1
    for each in range(length):
        if string[each] != string[last]:

上面这个部分中,for语句里,range(length)中length是指“length=len(string)”还是“length//=2”的值呀?

个人理解:range(length)中length是指“length=len(string)”

另外还有一个问题是,是要所有字符串的return都返回“1”之后,
再执行
if palindrome(string) == 1:
    print('是回文联!')
else:
    print('不是回文联!')      
这个部分吗?


还有就是 each 是代表字符串中的每一个字符呢,还是说是range范围中的数字呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-29 09:42:48 | 显示全部楼层    本楼为最佳答案   
714536074 发表于 2020-2-28 22:42
朋友,首先很感谢你的解答。

刚刚手动写了一个字符串“上回上”写了一下过程,目前还有一点问题是:

1,访问列表不是要有一个下标吗,each就是干这个的
2,那一部分不在函数里,所以是在if判断语句里调用,然后看返回值。
如果有帮助,请设最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 09:54:18 From FishC Mobile | 显示全部楼层
多次进行for循环
按顺序的分别的把lenght中每一个量赋给each
每一个量循环一次
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-14 03:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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