課程
/后端開發
/Python
/python進階
為什么return后面不能直接寫r*r呢?后面還非要加==x?
為什么用下面的if語句寫不對?
def is_sqr(x)
if int(math.sqrt(x))==1:
? ? return x
2019-04-21
源自:python進階 2-6
正在回答
import math
def is_sqr(x):
? ? if int(math.sqrt(x))==1:
? ? ? ? return x
print filter(is_sqr, range(1, 101))
當x=4時,sqrt(x)=2 不等于1,判斷結束
結果是
[1, 2, 3]
??? for i in range(1,11): ??????? if i*i==x:??????????? return x??????? else:??????????? i=i+1print filter(is_sqr, range(1, 101))
這樣子寫的話,個人感覺很好理解?
慕粉0330126670_kaese
慕粉0330126670_kaese 回復 慕粉0330126670_kaese
int(math.sqrt(x))==1: ? 表示平方根整數部分為1的數有哪些,在1-100中間,1,2,3,的平方根分別是1,1.414, ?1.236,整數部分是1.
加==x表示一個判斷,返回類型為布爾型。值為True或者False。而filter()函數?f?的作用是對每個元素進行判斷,返回 True或 False。
如果直接返回r*r,那就是r*r,如果r=0則為False否則值為True。此題輸出結果就變成range(1,101)的結果了
唯衛bww 提問者
? ? r = int(math.sqrt(x))
? ? return x == r *r
x == r * r 也是可以的,返回 x?
然后你的那代碼def is_sqr(x) 少了冒號? '? : '? 還有很多問題,我也是萌新,很多不懂的,查了一下,改了一會,即使運行起來也不是正確的答案(我算數差,)?
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-04-23
import math
def is_sqr(x):
? ? if int(math.sqrt(x))==1:
? ? ? ? return x
print filter(is_sqr, range(1, 101))
當x=4時,sqrt(x)=2 不等于1,判斷結束
結果是
[1, 2, 3]
2019-06-07
import math
def is_sqr(x):
??? for i in range(1,11):
??????? if i*i==x:
??????????? return x
??????? else:
??????????? i=i+1
print filter(is_sqr, range(1, 101))
這樣子寫的話,個人感覺很好理解?
2019-05-09
int(math.sqrt(x))==1: ? 表示平方根整數部分為1的數有哪些,在1-100中間,1,2,3,的平方根分別是1,1.414, ?1.236,整數部分是1.
2019-05-06
加==x表示一個判斷,返回類型為布爾型。值為True或者False。而filter()函數?f?的作用是對每個元素進行判斷,返回 True或 False。
如果直接返回r*r,那就是r*r,如果r=0則為False否則值為True。此題輸出結果就變成range(1,101)的結果了
2019-04-22
import math
def is_sqr(x):
? ? r = int(math.sqrt(x))
? ? return x == r *r
print filter(is_sqr, range(1, 101))
x == r * r 也是可以的,返回 x?
然后你的那代碼def is_sqr(x) 少了冒號? '? : '? 還有很多問題,我也是萌新,很多不懂的,查了一下,改了一會,即使運行起來也不是正確的答案(我算數差,)?