python - 获取用户输入,使用所述输入进行计算并使用 f 字符串生成输出
问题描述
我正在尝试编写一个程序,该程序将询问用户他们的姓名和年龄,并返回他们到 100 岁之前的时间。我不断收到错误,我无法理解我做错了什么。
这是更基本的代码,我已对其进行了更改以尝试使其正常工作,因为让我的 f 字符串打印时遇到了太多阻力{age}
,{name}
等等。
import sys, math
# Inputs
name = str(input("What is your name: "))
age = str(input("How old are you: "))
# Calculations
diff = (100 - age)
year = str((2020 - age)+100)
# Output
print ("Hay " + name + " you are currently " + age + " years old, in " + diff + " years you will be 100, in the year " + year)
在diff = (100 - age)
我的程序阶段,它返回以下内容:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
~/Documents/Python/years until you are 100.py in
7 # Calculations
8
----> 9 diff = (100 - age)
10
11 year = str((2020 - age)+100)
TypeError: unsupported operand type(s) for -: 'int' and 'str'
我错过了什么?
解决方案
正确的!我自己得到了它,以防其他菜鸟像我一样想知道!
以下是正确的代码
import sys, math
# Inputs
name = str(input("What is your name: "))
age = str(input("How old are you: "))
# Conversions
age = int(age)
# Calculations
diff = (100 - age)
year = str((2020 - age)+100)
# Output
print (f"Hay {name} you are currently {age} years old, in {diff} years you will be 100, in the year {year}")
这个问题正如我在我和另一个非常善良的用户之间对这个问题的评论中所说的那样。
我忘记了所有输入都是字符串,所以当我去使用我的 (age) 变量时,它不会做数学运算。
只需在我的计算之前添加从 str 到 int 的转换即可将其全部排序:D:
age = int(age)
推荐阅读
- javascript - React - 从外部脚本设置组件状态
- python - 如何根据特定列中的值对 pandas 数据文件中的字符串进行排序?
- c# - 如何在 ac#.net winforms 应用程序中编写 alt+tab 关闭按钮
- c# - 平行 用于悬挂应用
- android - 从 android studio 应用程序将数据保存到 tinydb
- mqtt - 寻找本地 Mosquitto 实例和 Watson IoT 平台之间的非安全桥接的工作示例
- mongodb - 使用标准将许多数据从 Mongo 集合传输到另一个集合的最佳方法
- api - 我应该为 Flutter 应用程序使用多个还是单个 API 密钥?
- flutter - 第一次 Flutter gradle 构建失败(出了什么问题:- java/lang/Throwable$WrappedPrintWriter)
- python - 如何将文件从 postgreSQL 保存到本地?