微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有人可以解释为什么结果不一样吗?

如何解决有人可以解释为什么结果不一样吗?

我正在学习 bash 和 Python。所以我尝试使用 Bash 和 Python 来解决大多数问题。这就是我最终尝试在 Bash 和 Python 中获取字符串长度的方式,而 wc 返回的是不同的数字。在网上搜索了答案,但没有找到。

$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | wc -c
      31
====
$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | wc -m
      31
====
$ string="ensPpaJxUanRSxRzWSqMcLrYZDhkCp"
$ echo ${#string}                          
30
====
>>> print(len("ensPpaJxUanRSxRzWSqMcLrYZDhkCp"))
30

解决方法

echo 产生一个换行符,它被算作一个额外的字符,正如@khelwood 评论的那样:

$ echo "ensPpaJxUanRSxRzWSqMcLrYZDhkCp" | python -c 'import sys; print(list(sys.stdin))' 
['ensPpaJxUanRSxRzWSqMcLrYZDhkCp\n']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。