Pythonで回文をチェックしようとしています。私が持っているコードは非常にfor
ループ集約的です。
そして、C から Python に移行するときに人々が犯す最大の間違いは、Python を使用して C ロジックを実装しようとすることです。これにより、動作が遅くなり、言語を最大限に活用できていません。
このサイトで見ます。Python には C スタイルの for ループがないため、「C スタイルの for」を検索します。時代遅れかもしれませんが、Python には独自のメソッドがあることを意味すると解釈します。
私は周りを見回してみましたが、これに関する最新の (Python 3) アドバイスはあまり見つかりません。for ループを使用せずに、Python で回文の課題を解決するにはどうすればよいですか?
クラスでは C でこれを行いましたが、個人的には Python で行いたいと考えています。問題はEuler Projectからのものです。ところで、素晴らしいサイトです。
def isPalindrome(n):
lst = [int(n) for n in str(n)]
l=len(lst)
if l==0 || l==1:
return True
elif len(lst)%2==0:
for k in range (l)
#####
else:
while (k<=((l-1)/2)):
if (list[]):
#####
for i in range (999, 100, -1):
for j in range (999,100, -1):
if isPalindrome(i*j):
print(i*j)
break
ここには多くのコードがありません。5 つのハッシュは、自分自身へのリマインダーです。
具体的な質問:
C では、インデックス 0 をインデックス max と比較し、次にインデックス 0+1 を max-1 と比較して何かが起こるまで for ループを作成します。Pythonでこれを行うにはどうすればよいですか?
私の for ループ (範囲内 (999, 100, -1) で、これは Python で行うには悪い方法ですか?
私の立場にある人々のための良いアドバイス、良いウェブサイト、またはリソースはありますか? 私はプログラマーではありません。志望しているわけでもありません。学士号の論文 (電気工学) を書くときに、適切なプログラミング言語を同時に学習する必要がないように、十分に学びたいだけです。プロジェクトで良い結果を得るために。「基本的な C から Python の優れたアプリケーションへの移行方法」、そのようなことです。
この問題を解決するための特定のコードも歓迎します。優れたアルゴリズムを学ぶ必要があります。3 つの状況を想定しています。値がゼロまたは 1 桁の場合、長さが奇数の場合、および長さが偶数の場合。for ループを書くつもりだった...
PS: 問題は次のとおりです。回文でもある 2 つの 3 桁の整数の最大値の積を見つけます。