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

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

簡單的while 循環問題 遇到報錯:'str' object has no attribute 'pop'

簡單的while 循環問題 遇到報錯:'str' object has no attribute 'pop'

慕勒13948 2019-04-10 11:31:05
hi 各位高手: 愿請各位不吝賜教:想要實現一個類似于“彈夾”的功能:原集合是number = ('a','b','c','d','e','f'),想要寫一個循環語句使得每次 有且僅有一個number中的元素被pop掉,并流到集合now=[]中,而后這些數字被累計到集合done =[]中, 請問這個功能要怎么循環起來。嘗試著寫了一個程序,如下:number = ('a','b','c','d','e','f')numerL =list(number)now =[]nowL=list(now)done=[]doneL=list(done)while len(numerL) > 0:numerL = numerL.pop()nowL = numerL.pop(0)doneL = now.append(numerL)print("number列:",numerL)print("now列:",nowL)print("done列",doneL)但得到報錯:Traceback (most recent call last):File "C:/Users/lenovo/PycharmProjects/Test.9.16/tests/have a try.py", line 17, in?nowL = numerL.pop()AttributeError: 'str' object has no attribute 'pop'請問該怎樣解決
查看完整描述

1 回答

已采納
?
pardon110

TA貢獻1038條經驗 獲得超227個贊

報錯信息很明了,字符串對象上是沒有pop方法的,關鍵是下面兩句

numerL?=?numerL.pop()??#?返回'a',重新賦值給變量numerL
nowL?=?numerL.pop(0)???#?此處的numberL已經不是列表,而是字符串了不存在pop方法

列表的pop()默認返回最后一個元素的值,帶參數則返回指定索引元素的值

而由你給出的代碼上下文中可知,numerL初始是個字符組成的列表,在進行pop()賦值之后,numerL變量的實際類型已經發生了改變(變成了字符串),在python字符串數據類型是不存在pop方法,所以報如下錯

'str'?object?has?no?attribute?'pop'


查看完整回答
1 反對 回復 2019-04-10
  • 1 回答
  • 0 關注
  • 3016 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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