Re: [閒聊] python小白問個問題

作者: erimow (Erimo)   2024-08-08 17:04:24
※ 引述《erimow (阿歐伊)》之銘言:
: Write a function called "isPrime" that takes an integer as input, and returns
: a boolean value that indicates if the input number is prime.
: isPrime(1)
: # returns false
: isPrime(5)
: # returns true
: isPrime(91)
: # returns false
: isPrime(1000000)
: # returns false
: 我的想法
: 質數 = 只能被1和自己整除
: 1不是是質數,所以=1要False
: 2以後的數字,我只要寫如果在從2開始到自己前一位的數字,除下去有任何一個餘數是0
: 那就False
: 剩下就是True
: def isPrime(int):
: if int == 1:
: print(False)
: return False
: for i in range(2, int):
: if (int % i) == 0:
: print(False)
: return False
: print(True)
: return True
: 這個應該沒問題
: # Write a function called "palindrome" that checks if the input string is a
: palindrome.
: 這題我一開始想法是
: 回文就從第一個往後看和從最後一個往前看是一樣的
: 所以我本來是想說用index第一個跟最後一個一樣,第二個跟倒數第二個一樣
: n = len(str)
: 只要i 在range n裡面,j則是從index-1開始往回數
: 兩個 ==
: 那就是對的
: 反之就str[0] != str[-1]那就是false
: 但這樣不知道為啥寫不出來
: 前面這邊應該沒問題
: def palindrome(str):
: n = len(str)
: if str[0] != str[-1]:
: print(False)
: return False
: 但有問題的是後面這裡
: else:
: for i in range(0, n):
: for j in range(-1, n, -1):
: if str[i] == str[j]:
: print(True)
: return True
: 如果不是上面的情況應該是要回應True的
: 但卻沒辦法
: 我的想法應該是錯在for j這句
: -1開始應該沒錯,最後-1倒數應該也沒錯
: 但中間要放啥啊
: 感覺不是n n代表我數第一個就停了
def palindrome(string):
n = len(string)
for i in range(0, n):
if string[i] != string[n - i - 1]:
print(False)
return False
print(True)
return True
總之我就拿aaba在試
就是i要讓它裡面先跑一輪
每一個都碰一下確定都對
有不等於就是錯的
如果都沒有錯
for迴圈跑完
那就代表對對碰都是對的
所以外面return True
作者: yueayase (scrya)   2024-08-08 17:10:00
所以你一開始想問什麼?
作者: MurasakiSion (紫咲シオン)   2024-08-08 17:10:00
邏輯應該對了吧 剩下就是效能 這迴圈其實只要跑一半
作者: yueayase (scrya)   2024-08-08 17:15:00
如果是原先那個有兩層for的 那我會覺得是你自己搞不大懂自己用眼睛看時,他的細部操作是什麼
作者: erimow (Erimo)   2024-08-08 17:15:00
下次一定改進
作者: yueayase (scrya)   2024-08-08 17:16:00
雙層for那個其實會把整段string掃過 然後兩個方向相反但顯然這個動作,不大符合palidrome的定義你只要稍微想想看你自己用眼睛看 分解動作是什麼大約不會想要看一個字元時 把所有字串裡的字都檢查過了而其中一個你現在搞對了 是要每個位子都相等才是而不是有一對符合就是 其實我不覺得這是什麼嚴重的問題
作者: erimow (Erimo)   2024-08-08 17:18:00
原本的問題是他檢查第一個 我就讓它結束了
作者: yueayase (scrya)   2024-08-08 17:19:00
就只是你沒注意到生活中有些事情必須用更細部的方式看畢竟你生活中不會刻意把這種東西用慢動作去解所以會有這種明明心裡知道是什麼但程式表達不出來很正常

Links booklink

Contact Us: admin [ a t ] ucptt.com