我使用Python2.7.12;我正在学习的算法书使用Python 3。直到现在,我发现我可以很容易地将大多数算法转换为Python 2,但是这个平方根函数,使用牛顿定律,仍然无法实现。
下面是代码,在其最初的Python 3中。
def square_root(n):
root = n / 2 #initial guess will be 1/2 of n
for k in range(20):
root = (1 / 2) * (root + (n / root))
return root
下面是在Python2.7.12中调用函数时的错误:
pri
我在C++中有一个函数,它返回正数a放大的b倍。在C++中,这个函数运行时没有错误,但是我想在Python中使用这个函数。有人能说出为什么这个函数返回的结果是C++,但是没有在Python中返回它,或者我在Python代码中犯了一个错误?
我知道我可以用许多其他的方式编写这个函数,并且这个函数可能不是最好的解决方案,但是这个特殊的例子有什么问题呢?我需要做些什么才能在Python中运行它,而不需要编写新的、更好的函数。为什么我可以在C++中运行这段代码,而不能在Python中运行?
C++代码:-
int exp(int a,int b){
int result=1;
whil
当我运行以下Python代码时,我使用Python2.7和Python3.4获得了不同的结果,我不知道为什么.
import sys
def main():
total = 0
number = 568
while number:
total += number % 10
print("total = %d" % total)
number /= 10
if __name__ == '__main__':
main()
使用Python2.7输出结果:
共计=8
共计= 14
大约半个小时的思考“我做错了什么!”5行代码..。因为Python3在某种程度上舍入了大整数。任何人都知道为什么会出现这样的问题:
Python2:
int(6366805760909027985741435139224001 # This is 7**40.
/ 7) == 909543680129861140820205019889143 # 7**39
Python3:
int(6366805760909027985741435139224001
/ 7) == 909543680129861204865300750663680 # I have no i
我用Python尝试了各种方法来求和一个数字的所有位数,有两种方法似乎适合我的需要。
sum(map(int,str(num))) #First Method
def sum_digits(n): #Second Method
total = 0
while n != 0:
total += n%10
n /= 10
return total
在Python 2中,方法1的速度更慢,这并不让我感到惊讶,但当我将相同的代码添加到Python 3中时,让我有点惊讶的是,方法2实际上变慢了。我知道在python3中改变了map,这似乎解释了第一
a = 123
def rev(n):
r = 0
while n>0:
r *= 10
r += n % 10
n /= 10
return r
print(rev(a)) 当我在python2上运行这段代码时,它工作得很好。但在那之后我尝试在python3上运行它,它返回 inf 我错过了什么? 抱歉,我的英语很差
试图在python中为“学习Python书”中的项目制作一个简单的计数器
简短:编写一个对用户有意义的程序。让用户输入起始号码、结束号和要计数的金额。
问题:好的,基本上是要确保如果用户要键入
in (start at 2 and count to 17 in 2's) that the program would flag it up as not possible.
print ("Welcome to the program for those who are to lazy to count")
print ("You mus
在下面的代码中,我想要计算一个序列中G和C字符的百分比。在Python3中,我正确地获取了0.5,但是在Python2中,我获取了0。为什么结果会有所不同?
def gc_content(base_seq):
"""Return the percentage of G and C characters in base_seq"""
seq = base_seq.upper()
return (seq.count('G') + seq.count('C')) / len(seq)
gc_co
我使用python中的以下算法实现了一个lcm问题。我的代码如下:
# Uses python3
import sys
def gcd_efficient(a, b):
#current_gcd = 1
#for d in range(2, min(a, b) + 1):
# if a % d == 0 and b % d == 0:
# if d > current_gcd:
# current_gcd = d
#return current_gcd
remainder = max(a