| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1406 人关注过本帖
标题:关于list里面数据问题
只看楼主 加入收藏
fcpplo
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2019-10-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于list里面数据问题
请看以下代码:
def trim(s):
  if s[:1] == ' ':
        return trim(s[1:])
    elif s[-1:]==' ':
        return trim(s[:-1])
 return s

# 测试:
if trim('hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello') != 'hello':
    print('测试失败!')
elif trim('  hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello  world  ') != 'hello  world':
    print('测试失败!')
elif trim('') != '':
    print('测试失败!')
elif trim('    ') != '':
    print('测试失败!')
else:
    print('测试成功!'
这个代码运行 最终显示‘测试成功‘


那么问题来了,
trim('')
函数里面
 if s[:1] == ' ':
        return trim(s[1:])
    elif s[-1:]==' ':
        return trim(s[:-1])

对于trim(''),s[:1]=='',s[1:2]=='' 我在Python里面用 bool(s[:1]==''),bool([1:2]==''),显示的值都是true 那这个函数为什么不是无限循环呢?
对于s=''   为什么s[0:1],s[1:2],s[2:3]....等等都是''

无法理解上述两个问题


搜索更多相关主题的帖子: trim print hello 测试 失败 
2019-10-24 21:24
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:244
专家分:2106
注 册:2019-8-16
收藏
得分:20 
以下是引用fcpplo在2019-10-24 21:24:06的发言:

请看以下代码:
def trim(s):
  if s[:1] == ' ':
        return trim(s[1:])
    elif s[-1:]==' ':
        return trim(s[:-1])
 return s

# 测试:
if trim('hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello') != 'hello':
    print('测试失败!')
elif trim('  hello  ') != 'hello':
    print('测试失败!')
elif trim('  hello  world  ') != 'hello  world':
    print('测试失败!')
elif trim('') != '':
    print('测试失败!')
elif trim('    ') != '':
    print('测试失败!')
else:
    print('测试成功!'
这个代码运行 最终显示‘测试成功‘


那么问题来了,
trim('')
函数里面
 if s[:1] == ' ':
        return trim(s[1:])
    elif s[-1:]==' ':
        return trim(s[:-1])

对于trim(''),s[:1]=='',s[1:2]=='' 我在Python里面用 bool(s[:1]==''),bool([1:2]==''),显示的值都是true 那这个函数为什么不是无限循环呢?
对于s=''   为什么s[0:1],s[1:2],s[2:3]....等等都是''

无法理解上述两个问题

1. bool(s[:1]=='')你这个比对的是空. def trim(s):  if s[:1] == ' ': 这里比对的是空格. 所以你trim('') 直接是  return s
2. 对于字符串的切片操作,如果start和end之间没有和step方向一致元素间隔,会返回空切片,所以''切出的所有切片都是空.
2019-10-25 09:25
fcpplo
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2019-10-24
收藏
得分:0 
多谢大神指点
2019-10-25 14:16
快速回复:关于list里面数据问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017714 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved