首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:开头的len()函数不识别0

Python:开头的len()函数不识别0
EN

Stack Overflow用户
提问于 2014-11-02 15:40:31
回答 3查看 7K关注 0票数 0

我想测试一个10位数字是否有10长,但是当这个数字以0开头时,len()只计数9,如何修复这个问题呢?

目前:

有些东西是由数字组成的变量,我把变量转换成一个字符串,然后做了这个声明。

代码语言:javascript
运行
复制
if len(something) != 10:
    (do something)

我现在的代码是:

代码语言:javascript
运行
复制
number = int(input("Enter number: "))

number = str(number)

if len(number) != 10:
    print ("Not 10 digits long")
else: 
    print ("Good")

如果我输入了一个10位数的数字,这很好,但是,当我输入一个10位数的数字并以0开头时,len()函数会识别这个数字为9长。帮助plz

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-02 15:52:58

提供yout代码,这是因为您将输入转换为int,然后将其转换为string (输入自动类型在Python3中为str,如果使用Python2,请不要忘记像hackaholic那样转换为str或使用raw_input )。

替换

代码语言:javascript
运行
复制
number = int(input("Enter number: "))

number = str(number)

通过

代码语言:javascript
运行
复制
number = input("Enter number: ")

所以数字将直接是一个字符串。你可以在上面使用len()。它甚至适用于0000000000。

票数 2
EN

Stack Overflow用户

发布于 2014-11-02 15:54:21

将其强制为整数时,输入将值作为字符串。

代码语言:javascript
运行
复制
 number = input("Enter number: ")

if len(number) != 10:
    print ("Not 10 digits long")
else: 
    print ("Good")

len函数工作在字符串上

如果您使用python2.x最好使用raw_input("Enter Number: ")

票数 1
EN

Stack Overflow用户

发布于 2014-11-02 16:03:19

以0开头的数字在python中以8(八进制数)表示。您需要将它们转换为字符串来计数它们的数字:

代码语言:javascript
运行
复制
# Not converted
number1 = 0373451234
print "number: "+str(number1)+" digits:"+str(len(str(number1)))

>号码: 65950364位数:8

代码语言:javascript
运行
复制
# Converted
number2 = "0373451234"
print "number: "+str(number2)+" digits:"+str(len(str(number2)))

>号码: 0373451234位数:10

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26701080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档