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