コードを書いてからしばらく経っていますので、もう一度やり直そうとしていますが、私のコードには問題があります。Python - if文で構文エラーが見つかりません
ユーザーの入力を受け取り、すべての文字が空白でなく、長さが12未満であるかどうかを確認する簡単なプログラムを作成したかったのです。17行目に「無効な構文」エラーコードを実行し、ユーザ名が単なる文字で12文字未満であるかどうかをチェックするif文の後にコロンを指します。私はそれが前にラインにエラーがあることを意味しますが、どこで?
#import the os module
import os
#Declare Message
print "Welcome to Userspace - Your One-Stop Destination to Greatness!" + "\n" + "Please enter your username below." \
+ "\n" + "\n" + "Username must be at least 12 characters long, with no spaces or symbols." + "\n" + "\n"
#uinput stands for user's input
uinput = raw_input("Enter a Username: ")
#check_valid checks to see if arguement meets requirements
def check_valid(usrnameinput):
if (usrnameinput != usrnameinput.isalpha()) or (len(usrnameinput) >= 12):
os.system('cls')
print "Invalid Username"
return False
else:
os.system('cls')
print "Welcome, %s!" % (usrnameinput)
return True
#Asks for username and checks if its valid
print uinput
check_valid(uinput)
#Checks input to check_valid is correct, and if it is not, then ask for new username input and checks it again
while check_valid(uinput):
return True
break
else:
print uinput
check_valid(uinput)
print "We hope you enjoy your stay here at Userspace!"
UPDATE - 私はもう少しコードをいじって、私は変更さ唯一の事はif
への条件付きwhile
た:
print uinput
check_valid(uinput)
#Checks input to check_valid is correct, and if it is not, then ask for new username input and checks it again
if check_valid(uinput):
print uinput
check_valid(uinput)
print "We hope you enjoy your stay here at Userspace!"
私はこのコードを実行しましたが、このエラーを得ました代わりに:
File "Refresher In Python.py", line 39
return True
SyntaxError: 'return' outside function
このようなnoobのために申し訳ありません。また、スタックオーバーフローに参加しました。
愚かな質問:どちらか**が**ライン17ですか?逐語で完全なエラーを追加してください! (それはちょっとしたことですが、ちょっとしたことです) –
関数の外側に 'return'ステートメントがあります。 'while check_valid(uinput):'ブロックで 'return True'が何をすると思いますか? 'return'は関数*内でのみ意味を持ち*、あなたの' while'ループは関数内にありません。 –
ありがとうございました!このすべてが非常に役に立ちます。また、@MarcusMüller、17行目は 'if(usrnameinput!= usrnameinput.isalpha())または(len(usrnameinput)> = 12)です:' – Bearclaw