私は初心者のプログラマーで、リストから数値を抽出して整数に戻す方法について助けが必要です。プログラムは数値入力 (305.67 など) を受け取り、305 と 67 に分割します。未完成部分を示すコードが添付されています。どんな助けでも大歓迎です、ありがとう!
def getDollarFormatText(dolAndCent):
separateDolCent = str(dolAndCent).rsplit('.',1)
return separateDolCent
私は初心者のプログラマーで、リストから数値を抽出して整数に戻す方法について助けが必要です。プログラムは数値入力 (305.67 など) を受け取り、305 と 67 に分割します。未完成部分を示すコードが添付されています。どんな助けでも大歓迎です、ありがとう!
def getDollarFormatText(dolAndCent):
separateDolCent = str(dolAndCent).rsplit('.',1)
return separateDolCent
あなたはとても近いです!
def getDollarFormatText(dolAndCent):
separateDolCent = [int(x) for x in str(dolAndCent).split('.')]
return separateDolCent
[int(x) for x in dolAndCent.split('.')] で行ったことは、リスト内包表記です(リスト内包表記はpython で非常に一般的なイディオムであり、慣れると非常に強力です)。基本的に、文字列を「。」で分割します。(前と同じように)、各要素(「.」の前後の部分)をループする小さなループを作成します。これらのそれぞれについて、 を使用して整数に変換しint
ます。関数。
文字列のどちら側から分割してもかまわないのでに変更rsplit
し、 「.」が 1 つしかないためを削除しました。とりあえず。split
1
separateDolCent
補足として、変数を作成する理由はありません。
def get_dollar_format_text(dol_and_cent):
'''Returns the dollar and cents part of a money amount as
a two element list of integers, where the first element is
dollars and the second is cents.
'''
return [int(x) for x in str(dol_and_cent).split('.')]
変数を から に変更したことに注目してcamelCase
くださいusing_underscores
。これは、Python コミュニティで関数名と変数名として好まれています。また、docstring を使用して関数にドキュメントを追加しました。
2
、3.4
またはのような数値を処理する必要がある場合は345.4311
、コードを次のように編集できます。
def get_dollar_format_text(dol_and_cent):
'''Returns the dollar and cents part of a money amount as
a two element list of integers, where the first element is
dollars and the second is cents.
'''
return [int(x) for x in '{0:.2f}'.format(dol_and_cent).split('.')]
これが行うこと2
は2.00
、数値3.4
が常に小数点以下 2 桁でフォーマットされるようにすること3.40
です。この方法では、常に小数点以下 2 桁でセントを取得します。 345.4311
345.43
あなたはもうすぐそこにいます:
def getDollarFormatText(dolAndCent):
separateDolCent = map(int,str(dolAndCent).rsplit('.',1))
return separateDolCent
各整数を新しい変数に保存するにはどうすればよいですか?
a
それらを 2 つの変数 (例:とb
)に抽出するだけです。
def getDollarFormatText(dolAndCent):
a,b = map(int,str(dolAndCent).rsplit('.',1))
print a
print b
getDollarFormatText("5.70")
これは印刷されます:
5
70