3小时入门Python——第十六课数字编程
无需计算的程序非常罕见。因此,学习用数字编程永远不是一个坏选择。我们将要学习的更有价值的技能是用户数据的处理。借助它,您可以创建交互式且更加灵活的应用程序。因此,让我们开始吧!
从用户输入中读取数字
由于您已经熟悉 input()
Python 中的函数,因此传递给该函数的所有数据都被视为 string,这对您来说并不陌生。但是,我们应该如何处理数值呢?通常,将它们显式转换为相应的数字类型:
integer = int(input())
floating_point = float(input())
注意当前的最佳实践:至关重要的是不要将变量命名为内置类型(例如,float 或 int)。另一个警告与用户错误有关。如果用户输入不正确的输入,ValueError
将会发生。目前,我们将仅限于此。不用担心,有关错误的更多信息可在专用主题中找到。现在,考虑一个处理数字输入的更详细,更实际的示例。
自由飞行里程
假设您有一张带有免费航空里程奖励计划的信用卡(或者您可能已经有一张)。作为用户,您应该每月输入平均从此卡上花费的金额。假设奖金计划为您每消费 1 美元,即可获得 2 英里的免费飞行里程。这是一个简单的程序,可以弄清楚何时可以免费旅行:
# the average amount of money per month
money = int(input("How much money do you spend per month: "))
# the number of miles per piece of money
n_miles = 2
# earned miles
miles_per_month = money * n_miles
# the distance between London and Paris
distance = 215
# how many months do you need to get
# a free trip from London to Paris and back
print(distance * 2 / miles_per_month)
该程序将计算您需要多少个月才能往返选定的距离。
尽管建议在该 input()
函数中为用户编写消息,但在我们的编程挑战中避免它们,否则您的代码可能无法通过我们的测试。
进阶作业形式
每当使用等号时 =
,实际上就为名称分配了一些值。因此,=
通常称为赋值运算符。同时,还有其他可在 Python 中使用的赋值运算符。它们也称为复合赋值运算符,因为它们一步执行算术运算和赋值。看看下面的代码片段:
# simple assignment
number = 10
number = number + 1 # 11
此代码等效于以下代码:
# compound assignment
number = 10
number += 1 # 11
从示例中可以清楚地看到第二段代码更加简洁(因为它没有重复变量的名称)。
当然,对于算术运算的其余部分也存在类似的分配形式:-=
,*=
,/=
,//=
,%=
,**=
。如果有机会,可以利用它们节省时间和精力。
接下来是复合分配的一种可能的应用。
计数器变量
在编程中,循环与称为 counters 的特殊变量一起使用。一个柜台一个特定的代码是如何运行的次数计数。同样,计数器应为整数。现在我们要说清楚了:您可以使用运算符 +=
和 -=
分别增加或减少计数器。
考虑以下示例,其中用户确定计数器增加的值:
counter = 1
step = int(input()) # let it be 3
counter += step
print(counter) # it should be 4, then
如果您只需要用户提供非负整数(毕竟我们要增加计数器!),则可以使用该 abs()
函数来防止输入错误。它与 Python 内置函数有关,并返回数字的绝对值(即,值不考虑其符号)。让我们重新调整最后一个程序:
counter = 1
step = abs(int(input())) # user types -3
counter += step
print(counter) # it's still 4
如您所见,由于该 abs()
功能,我们得到了一个正数。
就目前而言,您可以对传递错误,循环和**内置函数(在 Python 中进行数学运算)**所提及的内容不了解太多 。我们将追赶并确保您全面了解这些主题。继续与我们学习!
因此,我们阐明了有关整数运算和 Python 中数字输入处理的新细节。随时在将来的项目中使用它们。