百分比符号在Python中是什么意思

2024-04-25 17:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

在本教程中,有一个查找素数的示例:

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...             print(n, 'equals', x, '*', n//x)
...             break
...     else:
...         # loop fell through without finding a factor
...         print(n, 'is a prime number')
...

我知道double==是对相等性的测试,但我不理解if n % x部分。就像我可以口头地浏览每一部分,然后说出陈述对例子的作用一样。但我不明白百分号是怎么落进去的。

if n % x到底说了什么?


Tags: inloop示例forifrange教程else
3条回答

%做两件事,这取决于它的参数。在这种情况下,它充当模运算符,这意味着当它的参数是数字时,它将第一个除以第二个,并返回余数34 % 10 == 4因为34除以10等于3,余数为4。

如果第一个参数是字符串,则使用第二个参数对其进行格式化。这有点复杂,所以我将引用documentation,但仅作为一个示例:

>>> "foo %d bar" % 5
'foo 5 bar'

但是,从Python 3.1开始,字符串格式化行为得到了补充,有利于字符串.format()机制:

The formatting operations described here exhibit a variety of quirks that lead to a number of common errors (such as failing to display tuples and dictionaries correctly). Using the newer str.format() interface helps avoid these errors, and also provides a generally more powerful, flexible and extensible approach to formatting text.

值得庆幸的是,从Python2.6开始,几乎所有的新特性都是可用的。

虽然这有点离题,但是由于人们会通过在Python中搜索“percentage sign”(正如我所做的那样)来找到它,所以我想指出,%符号还用于在iPython中作为“magic”函数的前缀:https://ipython.org/ipython-doc/3/interactive/tutorial.html#magic-functions

模运算符;给出左值除以右值的余数。比如:

3 % 1等于零(因为3除以1)

3 % 2将等于1(因为3除以2将得到1的余数)。

相关问题 更多 >