Мое предложение:
import random
import sys
powerball=random.randint(1,42)
a=random.randint(1,53)
b=random.randint(1,53)
c=random.randint(1,53)
d=random.randint(1,53)
e=random.randint(1,53)
bla = ["\nPlease enter 5 numbers separated by only a comma : ",
"\nPlease, I need 5 numbers separated by only a comma : ",
"\nPLEASE, 5 numbers exactly : ",
"\nOh gasp ! I said 5 numbers, no more nor less : ",
"\n! By jove, do you know what 5 is ? : ",
"\n==> I warn you, I am on the point to go off : "]
i = 0
while i<len(bla):
x = raw_input(warn + bla[i])
try:
x = map(int, x.split(','))
if len(x)==5:
break
i += 1
except:
print "\nTake care to type nothing else than numbers separated by only one comma.",
else:
sys.exit("You wanted it; I go out to drink a beer : ")
(f,g,h,i,j)=x
print f,g,h,j,i
.
Некоторое объяснение:
.
for_stmt :: = "для" target_list "в" expression_list":" suite ["else" ":" suite]
A оператор break , выполненный в первом наборе, завершает цикл без выполнения набора предложения else.Оператор continue, выполненный в первом наборе, пропускает оставшуюся часть и продолжает работу со следующим элементом или с предложением else, если следующего элемента не было.
http://docs.python.org/reference/compound_stmts.html#index-801
.
.
x = map (int, x.split (',')) означает, что функция int () применяется к каждомуэлемент итерируемого, который является вторым аргументом.Здесь итерируемым является список x.split (',') Следовательно, x - это список из 5 целых чисел. В Python 3 больше нет raw_input () , он был заменен на input () , который получает символы, как raw_input () в Python 2.
.
.