第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

即使我調(diào)用它們,我的函數(shù)也沒有執(zhí)行

即使我調(diào)用它們,我的函數(shù)也沒有執(zhí)行

有只小跳蛙 2021-09-28 15:38:39
我正在構(gòu)建一個非常簡單的代碼(我是初學(xué)者,只是了解 Python 的基礎(chǔ)知識),它通過將費(fèi)率乘以小時(均由用戶輸入)來計算工資。我已經(jīng)成功地一遍又一遍地復(fù)制和粘貼相同的代碼(輸出按預(yù)期運(yùn)行)。我試圖通過將代碼放在函數(shù)上來簡化和縮短腳本來減少工作量。然而,當(dāng)我這樣做時,一切似乎都在走下坡路。輸入被詢問和接收,但是當(dāng)確定錯誤和浮動數(shù)字輸入的函數(shù)應(yīng)該運(yùn)行時,它沒有。#computation of final paydef compute_pay(hrs,rte):    pay = hrs*rte    print(pay)#computation of hours; it's pretty much the same for rate; only variables #changehrs = input("Enter Hours: ")def compute_hours(hrs):    try:        float(hrs)    except:        hrs = -1compute_hours(hrs)if hrs == -1:    print(error_m)while hrs == -1:    compute_hours(hrs)    if hrs == -1:        print(error_m)#endcompute_pay(hrs,rte)我期望計算實(shí)際工資,但我得到了一個類型錯誤,因?yàn)樵?end 中,乘法是在字符串之間進(jìn)行的,而不是變量“hrs”和“rte”的數(shù)值。發(fā)生這種情況不是因?yàn)槲覜]有建立變量的類型,而是因?yàn)榘暮瘮?shù)沒有運(yùn)行。
查看完整描述

3 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個贊

您需要return在函數(shù)中添加一條語句來捕獲輸出:


def compute_hours(hrs):

    try:

        float(hrs)

    except:

        hrs = -1

    finally:

        return hrs


new_hrs = compute_hours(hrs)

new_hrs 然后將存儲來自 compute_hours


查看完整回答
反對 回復(fù) 2021-09-28
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個贊

您的函數(shù)缺少return語句,因此您不會從compute_hours. 看來您想要的是一個向用戶詢問數(shù)小時的函數(shù),如果他們給您一個錯誤的值,則返回 -1。


def get_hours_from_user():

    try:

        return float(input('Enter Hours: '))

    except ValueError:

        return -1

計算工資作為一個需要小時和費(fèi)率并返回工資的函數(shù)更有意義(不需要縮寫,這只會增加閱讀難度)。


def compute_pay(hours, rate):

    return hours * rate

您可以大大簡化錯誤檢查,但最好將此邏輯放在 get_hours_from_user


hours = get_hours_from_user()

while hours == -1:

    print('invalid value for hours')

    hours = get_hours_from_user()

您在底部調(diào)用compute_pay使用一些變量rte,該變量在原始代碼中的任何地方都不存在,我在此處為其添加一個常量:


RATE = 8.0

pay = compute_pay(hours, RATE)

print('Your pay is:', pay)


查看完整回答
反對 回復(fù) 2021-09-28
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個贊

float(hrs)不會改變 的值hrs。它將值轉(zhuǎn)換為浮點(diǎn)數(shù),但不對該值執(zhí)行任何操作。您需要返回值。


def compute_hours(hrs):

    try:

        return float(hrs)

    except:

        return -1

然后你像這樣使用它:


hrs = compute_hours(hrs)

但是如果用戶輸入了一個無效的小時數(shù),你永遠(yuǎn)不會要求一個新的值,所以你的循環(huán)將是無限的。您需要再次提示。


while hrs == -1:

    compute_hours(hrs)

    if hrs == -1:

        print(error_m)

        hrs = input("Enter hourse: ")


查看完整回答
反對 回復(fù) 2021-09-28
  • 3 回答
  • 0 關(guān)注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號