首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Python 2.7 中 raw_input() 無法使用的原因與解決方案

     編輯:程式設計綜合問答

問題現象

Ubuntu 系統同時安裝 Python 2.7 和 3.4,PyCharm 配置為 Python 2.7,但代碼提示 Unresolved reference 'raw_input',改用 input() 卻無法運行。

根本原因

  • Python 2.x:raw_input() 返回字符串,input() 等同於 eval(raw_input())(有安全風險)
  • Python 3.x:raw_input() 被重命名為 input(),舊 input() 被移除

PyCharm 的代碼檢查器可能默認按 Python 3 語法檢查,導致誤報。

解決方案

方案一:確認運行環境

# 在代碼開頭添加 shebang(Linux/Mac)
#!/usr/bin/env python2.7

# 或在 PyCharm 中:File → Settings → Project → Python Interpreter
# 確保選擇的是 Python 2.7 解釋器

方案二:兼容寫法(推薦)

import sys
if sys.version_info[0] < 3:
    input_func = raw_input
else:
    input_func = input

name = input_func("請輸入姓名: ")
print(name)

方案三:使用 six 庫

from six.moves import input
name = input("請輸入: ")

常見誤區

  • print name 是 Python 2 語法,Python 3 需 print(name)
  • PyCharm 的靜態分析 ≠ 運行時環境,以實際運行結果為準

參考資料

百度經驗:Python raw_input 與 input 區別詳解

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved