1

我正在尝试创建一个计算销售税的程序。我首先问用户他们用餐的总费用是多少。然后我问他们他们所在地区的销售税是多少,形式如下:

y = input('What is the sales tax of your area? ')

我想在问题末尾有一个百分号“%”,以便用户将问题视为:

您所在地区的销售税是多少?_% ,用户可以在问题和百分号之间输入一个数字(用下划线表示)。

这是我尝试过的:

x = float(input("What is the cost of your meal? "))
y = input("What is the sales tax in your area? "+"%")

float(y)
y = y/100
cost = (x+(x*y))

print("The cost of your food is " + cost)
4

4 回答 4

1

我有一个解决方案给你。只是一个技巧,即使搜索了很长时间也没有找到直接的解决方案。但有一件事是肯定的,你需要知道输入的长度,否则很长的输入!会被覆盖。下面的代码:

x = float(input("What is the cost of your meal? "))
y = input("What is the sales tax in your area?  %\rWhat is the sales tax in your area?")

y = float(y)/100
cost = (x+(x*y))

print("The cost of your food is ", cost)
于 2016-07-07T14:21:06.747 回答
1

你可以做这样的事情

x=input("What is the sales tax in your area?    % \x1B[5D")

它首先打印该行,然后转义序列\x1B[5D将光标向后移动 5 位。但是第一个答案说的是,如果不事先知道输入将持续多长时间,您就无法做到这一点。如果它更长,那么它将覆盖百分号。你可以在这里查看更多这样的转义序列

另外,如果您不是非常迫切地想要这个,那么我建议您要求用户以百分比形式输入,而不是%在 inpur 的末尾放置一个符号

于 2016-07-07T13:48:40.087 回答
0

在不知道输入将持续多长时间的情况下,您无法使用 input() 做到这一点。您可以只要求用户以百分比回答。您可以使用 ANSI 转义码将百分号放在您输入的位置之后,但如果您键入直到到达百分号,它将被覆盖。如果你真的需要它,那么你可以对整个事情使用诅咒。

于 2016-07-07T13:25:00.187 回答
0

我最近遇到了同样的问题,我发现了一种显示您正在寻找的内容的方法!如果您导入 getpass,那么您应该能够使用下面的代码来获得您想要的结果。

import getpass

salesTax = getpass.getpass("The sales tax in my area is " + getpass.getpass() + " percent."

如果您运行此程序,那么首先显示的内容应该是“密码:”,例如,如果您输入 5,那么输出将是“我所在地区的销售税为 5%”。我不是最擅长解释事情,所以如果你想看到它在行动中发挥作用,我做了一个 repl 来做到这一点。https://repl.it/@ERokos_tcsyl/tester

于 2020-02-19T22:02:54.303 回答