ここで誰かがこれに似た質問をしましたが、その性質上初心者のため、すぐに反対票を投じられて閉鎖されました。だから私は自分自身と、この気の利いたプログラムの作り方を知りたい他の人のために、それは本当に悪い考えではないので、それに答えることにしました。だからここでは何も行きません!
2 に答える
あなたのコードが恐ろしいと言うつもりはありません。しかし、あなたはそれを単純化することができます.
ルーチン内のすべてをtry
1 行で置き換えることができます。
print 'Space for about', int(totstor*1048576/25), 'standard jpg image files available'
つまり、計算結果を直接印刷できます。int()
丸め、「.0」の削除などを処理し、整数 (および他のほとんどのデータ型) を文字列に変換せずに直接出力できるという事実に依存します。コンマを使用して、出力に必要な項目を連結するだけです。(目的の出力テキストに数字を入れる方法は他にもありますが、これが最も簡単です)。
最初に、2 枚の写真 (JPEG 形式) を撮り (自分で開発したソフトウェアを使用:3)、ファイル サイズを取得したところ、平均して約 25kb でした。したがって、ディスク上の画像の量を取得するには、使用可能なスペースをキロバイト単位で取得し、それを 25 で割ります (または、ファイルの種類が異なる場合はより大きくなりますが、よくわかりません)。
このプログラムでは、利用可能なギガ数を入力するようにユーザーに依頼すると、プログラムはそれに 1048576 (ギガ単位のキロバイト) を掛けて値として保存し、25 を掛けます。
それで、ここに素晴らしいコードがあります(うまくいけば、コメントは何が起こっているのかをちょっと説明しています。私はこれが得意ではありません):
#Main Loop
while True:
#Set number of Gigs
totstor=raw_input("Enter the amount of storage on the desired disk (In gb): ")
#Just in case you get bored
if totstor=='quit':
break
try:
#Do the math
gigs=int(totstor)
gigs=round(gigs)
kilos=gigs*1048576
kilos=kilos/25
kilos=round(kilos)
kilos=str(kilos)
kilos=kilos.strip('.0')
print 'Space for about '+kilos+' standard jpg image files available'
#If an error occurs, let em' know
except:
print 'Invalid Number!'
print '\n'
print '\n'
#Bye
quit()
これから何か助けになった人は、フィードバックを残してください。または、私のコードが xD であることを教えてください。