亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

無法為已定義函數中的變量賦值

無法為已定義函數中的變量賦值

慕尼黑的夜晚無繁華 2024-01-15 17:05:17
我正在嘗試定義一個從字符串中去除空格和連字符的函數,例如它將編輯foo - bar為foobar.原始字符串應存儲在命名變量(例如orig_str)下,修改后的字符串應在新變量名(例如amended_str)下返回。我嘗試定義這樣一個函數根本沒有做任何事情。#This is what my function looks likedef normalise_str(old_string, new_string):          #def func    temp_string = old_string.replace(" ", "")       #rm whitespace    temp_string = temp_string.replace("-", "")      #rm hyphens    new_string = temp_string                        #assign newly modified str to var#This is what I would like to achieveorig_str = "foo - bar"normalise_str = (orig_str, amended_str)print(amended_str) #I would like this to return "foobar"我肯定會重視更有效的解決方案......amended_str = orig_str.replace(" " and "-", "") #I'm sure something sensible like this exists然而,我需要了解我的功能做錯了什么,以促進我的學習。
查看完整描述

3 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

您當前的版本失敗,因為字符串在創建后無法修改(請參閱注釋);相反,執行以下操作:


amended_str = normalize_str(orig_str)

您想要的縮短版本是:


def normalize_str(in_str):

    return in_str.replace(' ', '').replace('-', '')


# Or

normalize_str = lambda s: s.replace(' ', '').replace('-', '')

注意:您無法修改作為參數傳遞的字符串,因為字符串是不可變的 - 這意味著一旦創建,它們就無法修改。


查看完整回答
反對 回復 2024-01-15
?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

字符串是不可變的對象,這意味著在Python中,函數外部的原始字符串不能被修改。因此,您需要顯式返回修改后的字符串。


def normalise_str(old_string):          

    return old_str.replace(' ','').replace('-', '')


orig_str = "foo - bar"

amended_str = normalise_str(old_string)

print(amended_str) # Should print foobar


查看完整回答
反對 回復 2024-01-15
?
森欄

TA貢獻1810條經驗 獲得超5個贊

您需要輸入舊字符串,進行更改,然后將最終的臨時字符串返回給變量。


#This is what my function looks like


def normalise_str(old_string):          #def func

    temp_string = old_string.replace(" ", "")       #rm whitespace

    temp_string = temp_string.replace("-", "")      #rm hyphens

    return temp_string                     #assign newly modified str to var


#This is what I would like to achieve


orig_str = "foo - bar"

s = normalise_str(orig_str)

print(s) #I would like this to return "foobar"


查看完整回答
反對 回復 2024-01-15
  • 3 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號