python判断位数并打印各位的值_python – 返回/打印句子中的数字位数或错误消息...

我是网站和

python的新手,所以我希望我能提供所有必需的信息.我已经搜索过这个问题但是没有一个解决方案似乎适合我.

我正在尝试创建一个函数来读取一些文本并返回它包含的数字量.例如:

“它是2012”,应该返回“Text has 4 digits”

如果没有数字,则应返回不同的消息,例如:

“这是星期一”,应该返回“文字不包含数字”

所以我写了这个:

def CountNumbers(txt):

sum = 0

for n in txt:

if n.isdigit() == False:

print ("Text does not contain digits")

else:

sum += 1

print("Text has", sum, "digit(s)")

txt = str(input("Write some text: "))

(CountNumbers(txt))

功能似乎没问题,但是打印结果不对,例如:

Write some text: 65

Text has 2 digit(s) #this is ok, but...

当我只输入文字时:

Write some text: sd

Text does not contain digits

Text does not contain digits

Text does not contain digits

Text has 0 digit(s)

当我输入文字和数字时(但首先是文字):

Write some text: sd 564

Text does not contain digits

Text does not contain digits

Text does not contain digits

Text has 3 digit(s)

我知道我的错误在于块,(我认为),但我还没有想出办法,因为当我使用return时,它会在它完成之前停止读取文本.我尝试了大约20种不同的东西,请帮助我!

谢谢 !!

附:我需要将它作为.py工作,而不仅仅是在IDLE(Python Shell)窗口中,这就是我写这样的块的原因.

最佳答案 我刚刚解决了你的代码问题:

def CountNumbers(txt):

sum = 0

for n in txt:

if n.isdigit():

sum += 1

if sum:

print("Text has", sum, "digit(s)")

else:

print ("Text does not contain digits")

CountNumbers(input("Write some text: "))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值