2013-04-20 156 views
0

我是新的python和陌生人蟒蛇縮進。每當我嘗試運行下面的代碼時,都會出現語法錯誤,它有什麼問題?謝謝。樹莓派的Python腳本中的語法錯誤

#!/usr/bin/python 

import RPi.GPIO as GPIO 
import time 

def RC_Analog (Pin): 
counter = 0 
# Discharge capacitor 
GPIO.setup(Pin, GPIO.OUT) 
GPIO.output(Pin, GPIO.LOW) 
time.sleep(0.1) 
GPIO.setup(Pin, GPIO.IN) 
# Count loops until voltage across capacitor reads high on GPIO 
while(GPIO.input(Pin)==GPIO.LOW): 
    counter =counter+1 
return counter 

# Set up header pin 11 as an input 
triggerPin = 25; 
echoPin = 8; 
GPIO.setmode(GPIO.BCM) 
GPIO.setup(triggerPin, GPIO.OUT) 
GPIO.setup(echoPin, GPIO.IN) 

while True: 
GPIO.output(triggerPin, False) 
time.sleep(0.000002) 
GPIO.output(triggerPin, True) 
time.sleep(0.00001) 
GPIO.output(triggerPin, False) 
print RC_Analog(echoPin)/58 
time.sleep (0.25) 
+1

你能告訴我們實際的錯誤信息嗎? – Volatility 2013-04-20 13:59:21

+0

SyntaxError會告訴你問題出在哪一行。 – Aya 2013-04-20 13:59:42

+0

def?RC_Analog(Pin)它突出了標記區域 – mozcelikors 2013-04-20 14:01:33

回答

0

如果你

ImportError: No module named RPi.GPIO 

您需要安裝模塊首先

https://pypi.python.org/pypi/RPi.GPIO

+0

'ImportError'與'SyntaxError'不同。 – 2013-04-20 14:02:37

+0

我說的語法錯誤,大聲笑 – mozcelikors 2013-04-20 14:05:42

+3

在約翰布朗的辯護中,你對你得到的錯誤非常模糊。 – 2013-04-20 14:07:31

1

你真的使用Python來啓動你的腳本?我可以在同一個地方得到一個錯誤,如果我嘗試將其源作爲shell腳本:

. test.py

確保您使用Python啓動它:

python test.py

或使其可執行: chmod u+x test.py ,並啓動它: ./test.py

+0

你的答案是有用的,但沒有我沒有做過。不管怎麼說,還是要謝謝你。問題是utf-8空白的東西,事實證明。 – mozcelikors 2013-04-20 14:27:47

1

def?RC_Analog(Pin)它突出的問題標記區域

如果你看到的代碼def RC_Analog(Pin),但語法錯誤信息字面上打印def?RC_Analog(Pin),這聽起來像你有比defRC_Analog之間的ASCII空格字符以外的東西,如Unicode non-breaking space或其他一些與空格類似的Unicode字符。

用鍵盤上鍵入的空格替換它應該可以解決問題。

在編寫Python腳本時,最好確保只使用7位ASCII字符集。有些文本編輯器會讓你在配置選項中設置它,其他人會讓你在保存時選擇編碼。

如果您使用的是Windows記事本,請在保存時選擇「ANSI」類型。