解題思路:列數(shù)學表達式計算 原始代碼:
# -*- coding: UTF-8 -*-# 文件名:test_03.pyfrom cmath import sqrtfor s in xrange(1,10000): a=sqrt(s+100) b=sqrt(s+268) if((a*a==s+100) and (b*b==s+268)): PRint s錯誤歸納: 1、math和cmath的差別如下: **math提供對實數(shù)的支持。**math模塊實現(xiàn)了許多對浮點數(shù)的數(shù)學運算函數(shù),這些函數(shù)一般是對平臺C庫中同名函數(shù)的簡單封裝。 Python提供對于復數(shù)運算的支持,復數(shù)在Python中的表達式為C==c.real + c.imag*j,python支持它的加減乘除運算,同時提供cmath模塊對復數(shù)其他復雜運算進行支持。 2、math.sqrt(x)返回的是float,實際上得到的結果是小數(shù),所以再平方回去實際上還是等于原來那個數(shù),因此需要int轉換一下。 修改后代碼如下:
# -*- coding: UTF-8 -*-# 文件名:test_03.pyimport mathfor s in xrange(1,10000): a=int(math.sqrt(s+100)) b=int(math.sqrt(s+268)) if((a*a==s+100) and (b*b==s+268)): print s做題思路:分別存儲輸入的三個數(shù),依次排序并交換
# -*- coding:utf-8 -*-x=int(raw_input("請輸入第一個整數(shù):"))y=int(raw_input("請輸入第二個整數(shù):"))z=int(raw_input("請輸入第三個整數(shù):"))if x>y: x,y=y,xif x>z: x,z=z,xif y>z: y,z=z,yprint "三個數(shù)從小到大為:%d,%d,%d"%(x,y,z)錯誤歸納: 1、以上正確,注意輸出多個變量需要輸出一個元組,元組是要用括號括起來的。把多個變量組成一個元組再操作會顯得更加清晰——即下列temptuple。 2、交換兩個數(shù),x ,y=y ,x
# -*- coding:utf-8 -*-x=int(raw_input("請輸入第一個整數(shù):"))y=int(raw_input("請輸入第二個整數(shù):"))z=int(raw_input("請輸入第三個整數(shù):"))if x>y: x,y=y,xif x>z: x,z=z,xif y>z: y,z=z,ytemptuple=(x,y,z)print "三個數(shù)從小到大為:%d,%d,%d"%temptuple新聞熱點
疑難解答