タグ付けされた質問 「python」

この課題はPython言語に関連しています。回答が特定の言語である必要がある課題は、一般的には推奨されません。

30
Pythonでのゴルフのヒント
Pythonでゴルフをするための一般的なヒントは何ですか?私は、コードゴルフの問題に適用でき、Pythonに少なくともある程度固有のアイデアを探しています(たとえば、「コメントの削除」は答えではありません)。 回答ごとに1つのヒントを投稿してください。
248 code-golf  python  tips 

11
llhuiiはどのようにして42バイトのPythonで悪の数を出力しましたか?
これは、Anarchy GolfのEvil Numbersの質問に関するPythonでのゴルフのヒントの質問です。 バイナリ展開が1の偶数を持っている場合、数字は悪です。課題は、最初の400の悪の数字0,3,5,...,795,797,798を1行に1つずつ印刷することです。 Python 2の提出は、42バイトのソリューションを備えたllhuiiが主導しています。次に最適なのは、ミッチごとに46バイトで、その後に47バイトの送信が5回続きます。llhuiiは、2年以上にわたり多くの強力なPythonゴルファーを避けてきた本当に魔法のような何かを見つけたようです。このような短いゴルフでは、4バイトまたは5バイトを節約するのは非常に大きなことです。 私はまだ47バイトです。コミュニティとしてこのパズルを解くことを望んでいます。共同で回答が得られたら、貢献したすべての人の名前で提出します。この質問に対する答えは、コードの一部、新しいアイデア、または分析の一部です。llhuiiの場合は、まだ私たちのためにそれを台無しにしないでください。 この問題は無限であるため、提出は明らかにされていませんが、いくつかのリードが与えられています。受賞作品の実行には0.1699秒かかり、他のどの方法よりもはるかに長く、非効率的な方法を示唆しています。バイト統計から、42文字のうち、23は英数字で[0-9A-Za-z]、19はASCIIシンボルです。これは、llhuiiのソリューションに空白がないことを意味します。 問題のページでコードをテストし、言語ドロップダウンからPythonを選択するか、.pyファイルをアップロードできます。ご了承ください: Python 2.7が使用されます コードは印刷する完全なプログラムでなければなりません kolmogorov-complexityのような、この問題に対する入力はありません プログラムは、より大きな値で中断する場合でも、指定された400個の値を出力するだけです。 プログラムの実行には2秒かかります プログラムがエラーで終了する場合があります 次を使用できますexec。「execが拒否されました」はシェルexecを指します

27
正直ロック、紙、はさみ
多くの人がRPSをチャンスのゲームだと考えています。両方のプレイヤーが予想外にプレイする場合、最善の戦略はランダムにプレイすることです。ただし、少し予測可能性を紹介しましょう。 各ボットは、同時にプレイする内容を他のボットに伝える機会があります。その後、各ボットが他のプレイヤーが発表した内容を知るための一時停止があります。その武器をプレイした場合、勝ち負けまたは引き分けのポイントに加えて1ポイントを獲得すると発表しました。 勝利には2ポイント、引き分け、1ポイント、損失0ポイントの価値があります。 Honest Bot Dishonest Win 3 2 Draw 2 1 Loss 1 0 正直であることはあなたの最大の利益です(しかし、相手があなたを信じないようにすることも)。 試合はラウンドロビン形式で行われ、目的はあなたがプレイする試合全体であなた自身の合計スコアを最大にすることです。 I / O形式: ボットは、4つの引数を取るPython 2.7関数であり、一意の名前(提出物を表すために使用される)を持つ必要があります。 最初の2つの引数は、常に順番になります。対戦相手の過去の動きと、それに続く過去の動きです。これらは、最初のラウンドから最新のラウンドまでの順番のリストになります。各インデックスには、対戦相手が行ったと主張した動きのリストと、実際に行った動きが含まれます。 次の2つの引数により、ボットは「正直な」ラウンドか「実際の」ラウンドかを判断できます。「正直な」ラウンドの場合、両方ともNoneになります。それが「本物の」ラウンドである場合、それらは順番に、対戦相手が彼らが行うと宣言した動きであり、その後、あなたが行うと宣言した動きです。 動きを表すすべての引数または引数の部分は、それぞれ「R」、「P」、および「S」を使用して、岩、紙、およびはさみを表します。 関数は、岩の場合は「R」、紙の場合は「P」、はさみの場合は「S」を返します。他の値を返すことができるボットは失格となります。 各ボットは、他のすべてのボットに対して200回、それ自体で100回実行されます。目標は、競争の終わりに最も多くのポイントを持つボットになることです。 コメントでの議論に関しては、提出物はいかなるファイルからも読み取りも書き込みもできません。 例: これらは、すぐにまとめた4つのボットの例です。彼らは追加のボットとして競争に参加します。最後まで負けた場合は、やるべきことがいくつかあります。 def honestpaper(I,dont,care,about_these): return "P" def honestrock(I,dont,care,about_these): return "R" def honestscissors(I,dont,care,about_these): return "S" import random def randombot(I,dont,care,about_these): return random.choice(["R","P","S"]) コントローラ: そして、これが私が使用するコントローラーです。新しい投稿は最初にインポートされ、bot_map辞書に追加されます。 …

30
サイコロのゲーム、ただし6番は避けます[終了]
トーナメント終了! トーナメントは終了しました!最終シミュレーションは夜に実行され、合計ゲームでした。勝者は、ボットOptFor2Xを使用したChristian Sievers です。クリスチャンシーバーズは反乱軍と2位を確保することもできました。おめでとうございます!以下に、トーナメントの公式ハイスコアリストを見ることができます。3∗1083∗1083*10^8 それでもゲームをプレイしたい場合は、以下に掲載されているコントローラーを使用し、その中のコードを使用して独自のゲームを作成してください。 私は聞いたことがなかったサイコロのゲームをプレイするように招待されました。ルールはシンプルでしたが、KotHチャレンジには最適だと思います。 ルール ゲームの始まり ダイスはテーブルを一周し、自分の番になるたびに、好きなだけダイスを投げることができます。ただし、少なくとも1回はスローする必要があります。ラウンドのすべてのスローの合計を追跡します。停止することを選択した場合、ラウンドのスコアが合計スコアに追加されます。 だから、なぜあなたはダイを投げるのをやめるのですか?あなたが6を取得した場合、ラウンド全体のスコアがゼロになり、ダイスが渡されるためです。したがって、最初の目標は、できるだけ早くスコアを上げることです。 誰が勝ちましたか? テーブルの周りの最初のプレーヤーが40ポイント以上になると、最後のラウンドが始まります。最後のラウンドが始まると、最後のラウンドを開始した人以外の全員がもう1ターンを獲得します。 最終ラウンドのルールは、他のラウンドと同じです。投げ続けるか、停止するかを選択します。ただし、最終ラウンドの前のスコアよりも高いスコアを取得しないと、勝つチャンスがないことを知っています。しかし、あなたがあまりにも遠くに行き続けるなら、あなたは6を得るかもしれません。 ただし、考慮すべきルールがもう1つあります。現在の合計スコア(以前のスコア+ラウンドの現在のスコア)が40以上で、6をヒットした場合、合計スコアは0に設定されます。つまり、最初からやり直す必要があります。現在の合計スコアが40以上のときに6を押した場合、ゲームは通常通り続行しますが、現在は最後の場所にいます。合計スコアがリセットされても、最終ラウンドはトリガーされません。あなたはまだラウンドに勝つことができますが、それはより挑戦的になります。 勝者は、最後のラウンドが終了した時点で最高のスコアを獲得したプレーヤーです。2人以上のプレイヤーが同じスコアを共有する場合、それらはすべて勝利者としてカウントされます。 追加のルールは、ゲームが最大200ラウンド継続することです。これは、複数のボットが現在のスコアを維持するために6を押すまで基本的に投げ続けるケースを防ぐためです。199回目のラウンドに合格すると、last_roundtrueに設定され、さらに1ラウンドがプレイされます。ゲームが200ラウンドになった場合、最高得点のボット(またはボット)が勝者となります(40ポイント以上を持っていなくても)。 要約 停止するか6を得るまで、各ラウンドでダイスを投げ続けます。 ダイスを1回投げる必要があります(最初の投げが6の場合、ラウンドはすぐに終わります)。 6を取得した場合、現在のスコアは0に設定されます(合計スコアではありません) 各ラウンドの後に、現在のスコアを合計スコアに追加します ボットがターンを終了し、合計スコアが少なくとも40になると、他の全員が最後のターンを獲得します 現在の合計スコアがで6を獲得した場合、合計スコアは0に設定され、ラウンドは終了します。≥40≥40\geq 40 上記の場合、最終ラウンドはトリガーされません 最終ラウンド後の合計スコアが最も高い人が勝者です 複数の勝者がいる場合、すべてが勝者としてカウントされます ゲームは最大200ラウンド続きます スコアの明確化 合計スコア:前のラウンドで保存したスコア 現在のスコア:現在のラウンドのスコア 現在の合計スコア:上記の2つのスコアの合計 どうやって参加しますか このKotHチャレンジに参加するには、から継承するPythonクラスを作成する必要がありますBot。次の関数を実装する必要がありますmake_throw(self, scores, last_round)。その関数は、あなたの番であるときに呼び出され、最初のスローは6ではありませんでしたyield True。投げを停止するには、する必要がありyield Falseます。各スローの後、親関数update_stateが呼び出されます。したがって、変数を使用して現在のラウンドのスローにアクセスできますself.current_throws。また、を使用して独自のインデックスにアクセスできますself.index。したがって、独自の合計スコアを表示するには、を使用しますscores[self.index]。end_scoreを使用してゲームself.end_scoreのにアクセスすることもできますが、このチャレンジでは40になると安全に想定できます。 クラス内でヘルパー関数を作成できます。Botクラスプロパティをさらに追加する場合など、親クラスに存在する関数をオーバーライドすることもできます。譲歩Trueまたは以外の方法でゲームの状態を変更することはできませんFalse。 この投稿から自由にインスピレーションを求め、ここに含めた2つのボットのいずれかをコピーしてください。しかし、私はそれらが特に効果的ではないことを恐れています... 他の言語の許可について サンドボックスとThe Nineteenth Byteの両方で、他の言語での投稿を許可することについて議論しました。そのような実装について読んで、両側から議論を聞いた後、私はこの挑戦をPythonだけに制限することに決めました。これは、2つの要因によるものです。複数の言語をサポートするのに必要な時間と、安定性に達するまでに多数の反復を必要とするこの課題のランダム性です。引き続き参加してください。このチャレンジのためにPythonを学びたい場合は、できる限り頻繁にチャットに参加できるようにします。 質問がある場合は、このチャレンジのチャットルームに書き込むことができます。また会いましょう! ルール 妨害行為は許可され、奨励されています。つまり、他のプレイヤーに対する妨害行為 コントローラー、ランタイム、またはその他のサブミットをいじくり回そうとする試みはすべて失格となります。すべての提出物は、与えられたインプットとストレージでのみ機能します。 500MB以上のメモリを使用して決定を下すボットは失格になります(その量のメモリが必要な場合は、選択を見直してください) ボットは、意図的または偶然に既存の戦略とまったく同じ戦略を実装してはなりません。 …


30
既知の既知のものがあります
元米国国防長官のドナルド・ラムズフェルドは、「既知の知人」というフレーズを有名にした。ここでは、彼の発言を4行のスタンザに要約します。 具体的には、次のテキストを出力します。 known knowns known unknowns unknown knowns unknown unknowns 大文字と小文字は区別されません(たとえば、大文字Known unKnownsで結構です)。また、単一の末尾の改行を使用できますが、他の形式の変更は許可されていません。これは、単語間の単一のスペース、および行間のLF(59バイト)またはCR/LF(62バイト)を意味します。 ルール 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。

26
二乗言葉を作る
チャレンジ あなたの仕事は、与えられた文字列入力を取り、二乗形式で入力を出力するプログラムを作成することです。空の文字列は空の文字列を返す必要があります。 例 入力が与えられた場合: golf プログラムは以下を出力するはずです。 golf o l l o flog 入力: 123 出力: 123 2 2 321 入力: a 出力: a 入力: Hello, world! 出力(との間のスペースに注意してください-w-ギャップは単なる改行ではありません): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

22
基本的なASCIIタリー
代替タイトル:壁にあなたの刑務所の文を集計します numberを指定するとn、出力はグループごとに従来の5に、行ごとに50にグループ化されます。 例 1 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

23
騒々しい反復囚人のジレンマ
この挑戦では、騒々しい反復囚人のジレンマをプレイします。 の 囚人のジレンマが協力し、または欠陥:2人の選手、二つの選択肢と、それぞれがあるゲーム理論ではシナリオです。各プレーヤーは、協力する場合よりも欠陥がある場合のほうが自分にとって有利ですが、両方のプレーヤーは、両方のプレーヤーが欠陥のあるものよりも両方のプレーヤーが協力する結果を好むでしょう。 繰り返される囚人のジレンマは同じゲームです。ただし、同じ対戦相手と繰り返し対戦し、対戦相手が過去に何をプレイしたかを知っています。あなたの目的は、対戦相手の行動に関係なく、常に自分で最高のスコアを獲得することです。 騒々しい反復囚人のジレンマは、コミュニケーションにノイズを導入します。対戦相手が過去に何をプレイしたかを知っていると、ノイズが発生します。また、過去にどのような動きをしたかもわかります。ノイズレートは同じ対戦相手に対するラウンドでは一定ですが、ラウンド間で異なります。 チャレンジ この課題では、騒々しい反復囚人のジレンマを再生するPython 3プログラムを作成します。 プログラムは3つの入力を受け取ります。 ランダムなフリップを適用せずに、独自の動き。 ランダムなフリップが適用された相手の動き。 状態変数。各ラウンドで空のリストとして開始され、必要に応じて変更できます。使用しない場合は、これを無視できます。 あなたのプログラムは'c'協力するか'd'、欠陥があるように出力すべきです。 たとえば、ランダムフリップが適用された後、最初の10フリップで、過去に少なくとも60%の時間、対戦相手が協力した場合に協力するプログラムを次に示します。 def threshold(my_plays, their_flipped_plays, state): if len(their_flipped_plays) < 10: return 'c' opp_c_freq = their_flipped_plays.count('c')/len(their_flipped_plays) if opp_c_freq > 0.6: return 'c' else: return 'd' Pythonがわからない場合は、提出物を擬似コードで書くと、誰か(私またはサイトの別のメンバー)が対応するPythonプログラムを作成できます。 ゲームプレイ トーナメントランナーは、noisy-gameにあります。実行noisy-game.pyしてトーナメントを実行します。そのリポジトリを新しいサブミッションで更新し続けます。サンプルプログラムはbasic.py。 プログラムの総合スコアは、ゲームの100回以上のプレイのスコアの合計です。 ゲームは、それ自体を含む各プレイヤーに対する各プレイヤーのラウンドロビン対戦で構成されます。対戦は100ラウンドで構成されます。ラウンドは300の動きで構成され、各動きには出力'c'または'd'。 あなたの提出物は、あなた自身のものを含むすべての提出物と対戦します。各対戦は100ラウンドで構成されます。各ラウンド中、フリップ確率はから一様にランダムに選択され[0, 0.5]ます。 各ラウンドは300手で構成されます。各動きで、両方のプログラムは、試行されたすべての以前の再生、フリップが適用された後、他のプログラムが行ったすべての以前の再生、および状態変数(プログラムが必要に応じて変更できる可変リスト)を受け取ります。プログラムは動きを出力します。 移動のスコアは次のとおりです。プログラムがを再生する'c'場合、相手のプログラムは2ポイントを獲得します。プログラムが再生される場合'd'、そのプログラムは1ポイントを獲得します。 次に、各手は、フリップ確率に等しい確率で独立してフリップされ、対戦相手に見せるために保存されます。 すべてのラウンドがプレイされた後、各プレイヤーが各対戦で獲得したポイント数を合計します。次に、次のスコアリングシステムを使用して、各プレーヤーのゲームのスコアを計算します。このスコアリングは、すべての対戦が完了した後に実行されます。 得点 進化スコアリングを使用します。各プログラムは同じ重みで始まります。次に、ゲームからのポイント合計を使用して、100回の反復に対して、次のように重みが更新されます。 各プログラムの新しいウェイトは、前のウェイトと平均ポイント合計の積に比例し、相手のウェイトで重み付けされます。 …

4
FOIL Pythonの強力な型付け!
あなたのタスクは、Python 2または3で次のような式を作成することです。 (a+b)(c+d) == a*c + b*c + a*d + b*d True例外を発生させることなく評価されます。 明確にするために、コードをファイルにコピーしてから、ファイルにコピーfromしますimport *。次に、コンソールに式を入力し、それがであることを確認しTrueます。 これはコードゴルフなので、最短の長さ(バイト単位)の答えが優先されます。
35 code-golf  python 

6
ラムダでの割り当てのためのPythonの回避策
これはPythonでのゴルフのヒントの質問です。 Pythonゴルフでは、提出がラムダとして定義された関数であることが一般的です。例えば、 f=lambda x:0**x or x*f(x-1) x の階乗を計算します。 ラムダ形式には2つの大きな利点があります。 f=lambda x:...またはのボイラープレートはlambda x:...、def f(x):...return...またはx=input()...print... 再帰呼び出しを使用すると、ほとんどバイトのオーバーヘッドなしでループできます。 ただし、ラムダには、単一の式のみを許可し、ステートメントを許可しないという大きな欠点があります。特に、これはのような割り当てがないことを意味しc=chr(x+65)ます。値を2回(またはそれ以上)参照する必要がある長い式がある場合、これは問題になります。 のような割り当てE=enumerateは、関数の外部またはオプションの引数として可能ですが、関数の入力に依存しない場合のみです。定義時に評価されるときにf=lambda n,k=min(n,0):...入力nが定義されていないため、fail などのオプションの引数k。 その結果、代替が長い非ラムダであるために、ラムダで長い式を繰り返して吸い込むことがあります。 lambda s:s.strip()+s.strip()[::-1] def f(s):t=s.strip();print t+t[::-1] 損益分岐点は約11文字(詳細)で、これを超えるとdefまたはに切り替わりますprogram。これを繰り返し式の長さ5の通常の損益分岐点と比較します。 range(a)+range(b) r=range;r(a)+r(b) print s[1:],s[1:]*2 r=s[1:];print r,r*2 他の言語には、Octaveなどの回避策があります。Pythonには既知のトリックがありますが、それらは長く、不格好で、使用が制限されています。ラムダでの割り当てをシミュレートするための短く汎用的な方法は、Pythonゴルフに革命をもたらします。 Pythonゴルファーがこの制限を克服または回避する方法は何ですか?ラムダで長い表現が2回繰り返されるのを見るとき、彼らはどんな潜在的なアイデアを念頭に置くべきですか このヒントの質問の私の目標は、この問題を深く掘り下げることです。 ゴルフの回避策をカタログ化して分析し、ラムダ内の偽の割り当て より良い方法のための新しいリードを探る 各回答では、回避策または潜在的なリードを説明する必要があります。
34 code-golf  tips  python 

9
「ソート」アルゴリズム
スターリンソートとも呼ばれる「ソートアルゴリズム」があり、リストをソートするには、リストが昇順にソートされるまでリストから要素を削除するだけです。たとえば、リスト [1, 2, 4, 5, 3, 6, 6] スターリンの並べ替えを使用して「並べ替え」が行われる場合 [1, 2, 4, 5, 6, 6] 3つは故障していたため削除されました。 当然、要素を削除してリストをソートする方法はたくさんあります。たとえば、要素が2つ未満のリストは並べ替える必要があります。そのため、盲目的に十分な要素を削除するだけで、常にリストを並べ替えることができます。これが事実であるため、スターリンの並べ替えから可能な限り長い結果のみを考慮します。 あなたの仕事は、正の整数のリストを取得し、元のリストから要素を削除することで到達できる最長のソートされた(増加する)リストの長さを出力することです。それは、最長のソートされた(おそらく不連続な)サブリストの長さを見つけることです。 ソートされたリストは、同じ要素を連続して複数回持つことができます。プログラム自体が空でない限り、空のリストをサポートする必要はありません。 得点 あなたの答えは、スターリンの可能な限り最長のソートの長さによって採点されます。プログラムは文字ではなくバイトのシーケンスとして解釈され、その順序はバイトを数字として解釈することによって生じる自然な順序になります。スコアが低いほど優れています。 これはコードゴルフではありません ここだきちんと-Oツール、あなたの答えを得点を支援します。 テストケース [1, 2, 4, 5, 3, 6, 6] -> 6 [19, 2] -> 1 [3, 3, 4, 3] -> 3 [10] -> 1 [1, 2, 4, 9] …

30
最初の価格の密封入札オークション
最終結果 競争は終わりました。おめでとうございますhard_coded! 興味深い事実: 40920のオークションのうち31600(77.2%)で、最初のラウンドの勝者がそのオークションで最も多くのラウンドを獲得しました。 例えば、ボットが競争に含まれている場合は、トップ9の場所は点を除いて変更されませんAverageMineし、heuristその位置を入れ替えます。 オークションの上位10件: [2, 2, 3, 3] 16637 [0, 3, 3, 4] 7186 [1, 3, 3, 3] 6217 [1, 2, 3, 4] 4561 [0, 1, 4, 5] 1148 [0, 2, 4, 4] 1111 [2, 2, 2, 4] 765 [0, 2, 3, 5] 593 [1, 1, 4, 4] …

7
ゴルフの練習:Python [終了]
これは、Pythonでゴルフの最適化を実践する際の課題です。再利用可能なトリックと、いくつかのキャラクターを削るショートカットです。多くの人がPythonゴルファーに精通しており、Python Tipsからの一般的なアイデアを使用します。これらのいくつかはPython固有の機能を使用しますが、これらは見たことがない限り存在しないと思われるため、立ち往生している場合はヒントをご覧ください。 目標: 10個の問題があり、それぞれが最適化のためのPythonコードの参照スニペットとコードの説明にあります。あなたの目標は、それをより短くなるように書き直すことですが、それでも機能的に同等です。 最小化しようとしているスコアは、すべてのスニペットのコードの合計長です。参照スニペットの長さは150です。Tiebreakerは最初の投稿です。 回答の投稿:各問題について、コードとその文字数を投稿します。短いものが見つからない場合は、参照スニペットを投稿できます。自分の投稿を投稿するときに他人の回答を見ないようにすることを目的としています。個々の文字数を含む個々の問題をネタバレにしてください。合計数を公開したままにすることができます。ソリューションのスポイラーを解除したり、新しいスポイラーのないソリューションを投稿してください。 合法性の詳細:機能的同等性とは、プログラムの動作に影響を与えることなくコードを置換できることを意味します(式の一部としてのメモリ使用量や演算子の優先順位などを無視します)。式は、と同等の値を生成する必要があります==。ことに注意してください1.0==1==True。特に明記しない限り、コードに副作用はありません。問題をバージョン固有のものにするつもりはありませんが、念のため、各問題にPythonバージョンを指定できます。 問題1:リストLに少なくとも7つの要素がある限り、繰り返しを続ける # 16 chars while len(L)>=7: 問題2:2つのフロートxとy両方が正であるかどうかを確認します。 # 11 chars x>0 and y>0 問題3:ブール値bがtrueの場合、の最初の要素を削除しLます。それ以外の場合は、そのままにしておきます。 # 12 chars if b:L=L[1:] 問題4:L数字の空でないリストのすべての要素が等しいかどうかを確認します。この問題については、リストを変更してもかまいません。 # 22 chars all(x==L[0]for x in L) 問題5:既にその番号が含まれている場合にのみn、リストの最後に番号を追加します。LL # 16 chars if n in L:L+=[n] 問題6:フロートの符号を表現するx:+1正の場合0、0の場合-1、負の場合。 # 20 chars abs(x)/x if x else …
31 code-golf  python 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.