2017-11-27 2 views
1

さて、これをタイトルにするのは本当に分かりませんでした。私は変数を使って手動で時間を更新するゲームを持っています。 $ current_hour = "07:00"たとえば以前の内容に基づいて時間 "スタンプ"の値を増やす - 文字列

私ができるようにしたいことは、手動で毎回新しい時間を入力する必要なしにこれを増やすことです。このような何か:次のように $ current_hour += 1(私はもちろん、これは動作しません知っている)

だから、私が試した:

そして、うまくいけば、私は午前8時00分を与えるだろう
hour = current_hour 
current_hour = str(int(hour[:2]+1)+hour[3:]) 

- しかし、それはdoesnのなぜか、私はちょっと困っています。 私が得るエラーはcoercing to unicode, need string or buffer, int found です。私はint()とstr()としてそれぞれ宣言していると思いましたが、明らかに私は気にしませんでした。だから、私はPythonを吸う - 誰でもこれを手伝うことができる?

+0

この 'current_hour = STR試し(INT(時間[:2])+ 1)+時間[2]'。しかし、時が「12:00」などのエッジの場合には失敗しますので、「Datetime」を使用してください。 –

答えて

1

これを試してください:

current_hour = "12:00" 
current_hour = str(int(current_hour[:2])+1)+current_hour[2:] 

if len(current_hour)==4: 
    current_hour = '0' + current_hour 

if int(current_hour[:2]) >= 13: 
    current_hour = str(int(current_hour[:2])-12)+current_hour[2:] 

if len(current_hour)==4: 
    current_hour = '0' + current_hour 
+0

これは動作しているようですが、別の問題があるため、変数の表示が更新されないので、私はそれを解決する必要があります。 – junkfoodjunkie

+0

変数をグローバルまたは共有コードとして宣言できます新しい質問をしてください:) – MKRNaqeebi

+0

他の問題は無関係で、修正されていますので、私はあなたに答えを与えました:) – junkfoodjunkie

0

ホイールを再作成してdatetimeオブジェクトを使用しないでください。

from datetime import time 
current_hour = time(7) 
current_hour # datetime.time(7, 0) 

def addhour(time, hours): 
    return time.replace(hour = (time.hour + hours)%24) 

addhour(current_hour, 1) # datetime.time(8, 0) 
current_hour.isoformat() # '08:00:00' 
+0

これは、変数がRen'Pyのゲームエンジンに文字列として格納されているという問題です。たぶん、それをdatetimeオブジェクトとして使用する方法があるとは限りません。あなたのソリューションはそれだけではうまくいくが、格納された変数でdatetimeを使用しようとすると、時間がかかる。 – junkfoodjunkie

関連する問題