鱼C论坛

 找回密码
 立即注册
查看: 5373|回复: 2

python中len函数的用法

[复制链接]
发表于 2016-3-21 13:03:57 | 显示全部楼层 |阅读模式

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

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

x
这个是老师的代码,因为不明白,加了打印,len函数不就返回它本身的长度吗?这句话'上海自来水来自上海',这只有9个字符,长度为啥变成了18?后面last的变量都是在length的长度上减1了为什么还是18?


  1. def palindrome(string):
  2.     length = len(string)
  3.     print '这第一个是%s ' % length
  4.     last = length- 1
  5.     print '这第二个是%s ' % length
  6.     #length //= 2
  7.     flag = 1
  8.     for each in range(length):
  9.         print each
  10.         if string[each] != string[last]:
  11.             flag = 0
  12.         last -= 1
  13.     if flag == 1:
  14.         return 1
  15.     else:
  16.         return 0
  17. string = raw_input('请输入一句话:')
  18. if palindrome(string) == 1:
  19.     print 'hui wen'
  20. else:
  21.     print '不是'
复制代码

运行结果
  1. 请输入一句话:上海自来水来自上海
  2. 这第一个是18 #为啥是18呀不应该是9吗?明白是9个元素吗?
  3. 这第二个是18## 这个length减1了怎么还是18?
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-21 13:14:58 | 显示全部楼层
1. Python2和3存在编码区别, 这是2的例子
  1. >>> len('三个字')
  2. 9
  3. >>> len(u'三个字')
  4. 3
  5. >>>
复制代码
而Python3就不会这样, 如下
  1. >>> len('三个字')
  2. 3
  3. >>> len(u'三个字')
  4. 3
  5. >>>
复制代码


2. 你传的是length而不是last
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-3-21 14:11:56 From FishC Mobile | 显示全部楼层
hldh214 发表于 2016-3-21 13:14
1. Python2和3存在编码区别, 这是2的例子而Python3就不会这样, 如下

2. 你传的是length而不是last{:10_2 ...

谢谢,明白啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-20 07:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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