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

為了賬號安全,請及時綁定郵箱和手機立即綁定

for循環中嵌套多個if語句的問題

老師,您好,我在編寫某段程序時出現一些問題難以搞懂,忘能指點

#!usr/bin/python
#?-*-?coding:?UTF-8?-*-
#?lexicon.py
#?掃描器模塊,用以判斷用戶輸入的詞匯類型
#用戶輸入
user_input?=?raw_input("input?now!!\n>")
words?=?user_input.split()?#分割字符串并以列表形式返回
def?scan(words):
????#詞匯表
????direction_list?=?['north',??'south',?'east',
????????????????????'west',?'down',?'up',?'left',
????????????????????????'right',?'back']
????verb_list?=?['go',?'stop',?'kill',?'eat']
????stops_list?=?['the',?'in',?'of',?'from',
?????????????????????'at',?'it']
????nouns_list?=?['door',?'bear',?'princess',
????????????????????'cabinet']
????#用于存儲掃描處理結果
????results?=?[]
????#遍歷列表每個元素
????for?word?in?words:
????#判斷是否為方向
????????if?word?in?direcition_list:
????????????stuff?=?('direction',?word)
????????????return?results.append(stuff)
????#判斷是否為動詞
    if?word?in?verb_list:
????????????stuff?=?('verb',?word)
????????????return?results.append(stuff)
????#判斷是否為修飾詞
????????if?word?in?stops_list:
????????????stuff?=?('stops',?word)
????????????return?results.append(stuff)
????#判斷是否為名詞
????????if?word?in?nouns_list:
????????????stuff?=?('nouns',?word)
????????????return?results.append(stuff)
????#判斷是否為數字
????????if?convert_number(word):
????????????return?results.append(convert_number(word))
????????????
def?convert_number(s):
????try:
????????return?int(s)
????except?ValueError:
????????return?None
File?"lexicon.py",?line?32
????  ????if?word?in?verb_list:
????^
SyntaxError:?invalid?syntax
??1?#!/usr/bin/python???????????????????????????????????????????????????????????
??2?#?-*-?coding:?UTF-8?-*-
??3?#?test.py
??4?lists?=?[1,2,3,4,5,6,7,8]
??5?list1?=?[1,2]
??6?list2?=?[3,4,5]
??7?list3?=?[6,7,8]
??8?for?i?in?lists:
??9?????if?i?in?list1:
?10?????????print?"1"
?11?????if?i?in?list2:
?12?????????print?"2"
?13?????if?i?in?list3:
?14?????????print?"3"
?15??
#?python?test.py?
1
1
2
2
2
3
3
3

如上,因為第一段代碼執行報錯,所以我寫了下面一段用來測試,發現for循環中嵌套使用多個if語句語法正確

我不知道是什么原因了


正在回答

1 回答

#!usr/bin/python
#?-*-?coding:?UTF-8?-*-
#?lexicon.py
#?掃描器模塊,用以判斷用戶輸入的詞匯類型
#用戶輸入
user_input?=?raw_input("input?now!!\n>")
words?=?user_input.split()?#分割字符串并以列表形式返回
def?scan(words):
????#詞匯表
????direction_list?=?['north',??'south',?'east',
????????????????????'west',?'down',?'up',?'left',
????????????????????????'right',?'back']
????verb_list?=?['go',?'stop',?'kill',?'eat']
????stops_list?=?['the',?'in',?'of',?'from',
?????????????????????'at',?'it']
????nouns_list?=?['door',?'bear',?'princess',
????????????????????'cabinet']
????#用于存儲掃描處理結果
????results?=?[]
????#遍歷列表每個元素
????for?word?in?words:
????#判斷是否為方向
????????if?word?in?direcition_list:
????????????stuff?=?('direction',?word)
????????????return?results.append(stuff)
????#判斷是否為動詞
   ??if?word?in?verb_list:
????????????stuff?=?('verb',?word)
????????????return?results.append(stuff)
????#判斷是否為修飾詞
????????if?word?in?stops_list:
????????????stuff?=?('stops',?word)
????????????return?results.append(stuff)
????#判斷是否為名詞
????????if?word?in?nouns_list:
????????????stuff?=?('nouns',?word)
????????????return?results.append(stuff)
????#判斷是否為數字
????????if?convert_number(word):
????????????return?results.append(convert_number(word))

def?convert_number(s):
????try:
????????return?int(s)
????except?ValueError:
????????return?None

代碼和你的是一樣的,你那一行if前面使用了一個全角空格.

0 回復 有任何疑惑可以回復我~
#1

叫我樹莓派_ 提問者

問題解決了,萬分感謝,vim下練習時常會出現一些這樣的問題,有時候還很難發現 另外,不知道你對python中文字符輸出到utf8編碼下的linux終端出現亂碼問題知道問題不,linux終端編碼設置為gbk*格式顯示正常,然而這樣做其他文件就顯示亂碼了
2016-04-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

for循環中嵌套多個if語句的問題

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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