(菜鸟自学python第一篇)
初来乍到
笨方法学python 第35节
之前没遇到什么问题困扰,这一节遇到了点小问题,修改过后的代码如下,主要问题是gold_room函数里,int函数,原码写的是how_much = int(choice),发现顺利输入之后,如果输入的是整数51,可以顺利运行,如果输入浮点数51.2,则会报错,,通过input输入的数字会以字符串的形式储存,而通过int读取这个字符串变量的时候,如果是符合int类型的整数则不会报错,对于字符串来说,即int() 适合读取表示整数的字符串,请教了大神,给出了一种解决方法,通过index索引小数点前的字符串长度,int里只取小数点前的字符,构成这个浮点数的整数部分,小数部分再用float表示;或者直接采用float函数,这样51读取后成为51.0。比较弱智的错误,自嘲一下吧,慢慢编程路~
from sys import exit
def gold_room():
print("This room is full of gold. How much do you take?")
choice = input(">")
if '0' in choice or '1' in choice:
## how_much = int(choice[0:choice.index('.')])+float(choice[choice.index('.')+1:])/(10**(int(len(choice[choice.index('.')+1:]))))
## index 索引.之前的字符列表,51.1 用choice.index('.')等于2,choice[0:choice.index('.')]输出choice字符的0-1位,即51,choice[0:2]含首不含尾
how_much = float(choice)
else:
dead("Man, learn to type a number.")
if how_much < 50:
print("Nice, you're not greedy, you win!")
exit(0)
else:
dead("You greedy bastard!")
def bear_room():
print("There is a bear here.")
print("The bear has a bunch of honey.")
print("The fat bear is in front of another door.")
print("How are you going to move the bear?")
bear_moved = False
while True:
choice = input(">")
if choice == "take honey":
dead("The bear looks at you then slaps your face off.")
elif choice == "taunt bear" and not bear_moved:
print("The bear has moved from the door.")
print("You can go through it now.")
bear_moved = True
elif choice == "taunt bear" and bear_moved:
dead("The bear gets pissed off and chews your leg off.")
elif choice =="open door" and bear_moved:
gold_room()
else:
print("I got no idea what that means.")
def cthulhu_room():
print("Here you see the great evil Cthulhu.")
print("He, it,whatever stares at you and you go insane.")
print("Do you flee for your life or eat your head?")
choice = input(">")
if "flee" in choice:
start()
elif "head" in choice:
dead("Well that was tasty!")
else:
cthulhu_room()
def dead(why):
print(why,"Good job!")
exit(0)
def start():
print("You are in a dark room.")
print("There is a door to your right and left.")
print("Which one do you take?")
choice = input(">")
if choice == "left":
bear_room()
elif choice =="right":
cthulhu_room()
else:
dead("You stumble around the room until you starve.")
start()