【问题标题】:boolean string not counted in while/if statement in python[3.8]python [3.8]的while/if语句中不计算布尔字符串
【发布时间】:2020-06-17 10:46:31
【问题描述】:

我是一名初级程序员,选择了 python[3.8] 作为我学习的选择。我什至不知道该问什么或如何搜索这个网站。我的程序从 30 到 40 计算,并为 3 的倍数和 3 的字符串以及 3 的余数打印“Go”。它计算 Go。输出应该是 10 但它是 3。它不计算字符串。没有错误消息。

`enter code here`
s = '3'
x = 40
y = 30
num = 0
while y < x :
    y=y+1
    if y % 3 == 0 or y % 10 == 3 or s in 'y' :
        print('Go',y)
        num = num + 1
print(num, 'Go\'s')

【问题讨论】:

  • 从这里开始:查看s in 'y' - 您正在寻找字母“y”中的“3”。
  • 您应该为您正在使用的编程语言在您的问题中添加一个标签。
  • 我无法为 python[3.8] 添加标签,因为我的声誉不够好。我试图在 y=y+1 计数中查找 3。你能帮忙吗?
  • 如果我删除 ' ',我会收到以下错误 TypeError: argument of type 'int' is not iterable
  • Python如何将整数转换为字符串?你应该能够研究它,并解决你的问题。你很接近。

标签: python while-loop boolean counting


【解决方案1】:

我认为这里的问题是了解 python 的工作原理。

当你写s in 'y'时,它总是会返回false,因为这里的y是组成字符串的一个字符,其值为y该字符。

所以您需要做的是使用函数str(param) 将您的整数转换为具有相同值的字符串。 这是一个可以按照您想要的方式工作的代码。

s = '3'
x = 40
y = 30
num = 0
while y < x :
    if y % 3 == 0 or y % 10 == 3 or s in str(y) :
        print('Go',y)
        num = num + 1
    y=y+1
print(num, 'Go\'s')

【讨论】:

  • 天哪!我实际上缩短了帖子以便于理解。我修改了你的代码,它可以工作!有用!有用!非常感谢……
猜你喜欢
  • 2022-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 2018-09-20
相关资源
最近更新 更多