笨方法学python第一篇

一名编程新手在学习Python过程中,遇到了关于类型转换的问题。在尝试使用int函数将输入的字符串转换为整数时,发现只能处理整数,不能处理浮点数。通过求助,学会了使用float函数来解决这一问题,避免了程序因类型不匹配而崩溃。

(菜鸟自学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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值