[英]Don't know what to use in this if-statement
if(isr.isalpha() or (isr.isnumeric() and isr.isalpha())) : print("You can't use a letter here.")
else :
isr = math.sqrt(float(isr))
print(isr)
所以我希望它检测isr
字符串是否会有一个字母,例如:“a”或带有数字“a8”的字母。 我尝试使用and
和or
逻辑运算符,但使用实际代码,它只是给了我“无法将字符串转换为浮点数:'xxx'”,就像它只是跳过了整个if
行。 当我放“,”而不是and
我放一个“a3”时,它说的是它应该说的正确的东西,但是当我放一个你可以在平方根中实际使用的正常数字时,它说的是它不应该。
对于and
= "a3",视觉工作室会说“无法将字符串转换为浮点数:'a3'。对于and
= "a",它会打印正确的内容“你不能在这里使用字母。”对于and
= “4”它将按应有的方式打印“2.0”。
带有,
而不是and
的那个。
if(isr.isalpha() or (isr.isnumeric(), isr.isalpha())) : print("You can't use a letter here.")
else :
isr = math.sqrt(float(isr))
print(isr)
For ,
= "a3" 它打印出正确的东西“你不能在这里使用字母。” For ,
= "a" 它打印出正确的东西“你不能在这里使用字母。” For ,
= "4" 应该打印 2 但它会打印出“您不能在此处使用字母”。
任何人都可以帮助我吗?
isnumeric
和isalpha
函数告诉您整个字符串是数字还是字母:
>>> "aa".isalpha()
True
>>> "aa3".isalpha()
False
与其尝试堆叠一堆条件来告诉您字符串是否是可以取平方根的有效float
,不如使用try/except
:
>>> isr = "a3"
>>> try:
... print(math.sqrt(float(isr)))
... except ValueError:
... print(f"{isr} isn't a valid number.")
...
a3 isn't a valid number.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.