python-3.x - if 语句 get 被跳过,而只有 else 语句 get 被打印。我如何将字符串或 int 存储在单个变量中?
问题描述
我正在尝试做一个练习,它要求我们解决以下问题 我尝试做的练习问题图像 ,但不使用与练习中显示的完全相同的关键字。
这是我的代码
def StringLength(length_of_String):
return len(text)
text = input("length_of_String :")
if type(text) == int:
print ("python doesn't show length of integers")
else :
print (len(text))
但我在这里遇到的问题是,如果我添加任何文字,比如“joker”。它会将我的长度输出为“5”,这是正确的。
但是当我输入任何整数或浮点数时,比如 "101" ,它仍然将它的长度打印为 "3",因为它将它作为字符串读取。
那么我为什么要添加变量,当我输入一个整数或字符串时,它应该将其识别为字符串或整数
解决方案
some_variable = input()
默认情况下会给你字符串。您可能需要修改您的代码:
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
def StringLength():
text = input('Enter:')
if is_number(text):
print ("python doesn't show length of integers")
else :
return(len(text))
#StringLength() #Remove the '#' at the start of the line to test the function
编辑:我添加了一个函数来测试输入的值是否为数字
推荐阅读
- anaconda - AttributeError:“DataFrame”对象没有属性“as_matrix”
- reactjs - 如何在firestore中完全删除包含数据的文档
- angular - 如何为以下日期类型定义接口
- python - 加入具有不同行的熊猫数据框
- javascript - 如何从可编辑记录中隐藏 roweditor cls
- discord.js - 我将如何制作一个手动抓取它们的帮助命令?
- xcode - 如何结合 lib.a(一个 lib C)来支持 2 种架构(Intel vs ARM)
- c++ - std::uniform_real_distribution 在 mingw 只给出一个数字
- c# - 在 WinForm C# 中更改面板的起点
- php - 使用 php curl 时传递值