2016-03-29 4 views
0

Мне удалось получить эту функцию для перебора по списку. Я хочу, чтобы включить текущий элемент списка в строку вывода. то есть. (raw_input("Enter the number of hours the employee worked on : ")), показывающий понедельник или вторник или который когда-либо был элементом функции.Как я могу ссылаться на элемент списка в этой функции?

# -*- coding: utf-8 -*- 

day = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 

def hours(): 
    while True: 
     try: 
      hours = int(raw_input("Enter the number of hours the employee worked on : ")) 
      if (hours >=0) and (hours <=24): 
       return hours 
      else: 
       print ("Please enter a whole number that is more than zero & less than 24") 
     except ValueError: 
      print ("Please enter a whole number that is more than zero & less than 24") 
      continue 


for i in day: 
    print hours() 
+0

в случае, если у меня возникнут вопросы. может кто-то также объяснить, почему мой код все сгруппирован так, как – Chopwise

+0

, вы должны подумать о том, чтобы прочитать [Как мне отформатировать мои кодовые блоки?] (https://meta.stackexchange.com/questions/22186/how-do-i- формат-мои-кодовые блоки). Это означает, что вы подразумеваете под *, включая текущий элемент списка в выходной строке *? Пожалуйста, добавьте ожидаемый результат на ваш вопрос – styvane

+1

, вам нужно передать параметр функции часов: def hour (переменная): – SnakeFoot

ответ

1

Если вы хотите, день недели в вашем выводе вы можете использовать функцию format() следующим образом:

"Enter ... worked on {0} : ".format(day) 

и передать day в вашей hours() функции:

print hours(i) 

Конечно, вы должны определить свою функцию, чтобы признать, что один новый параметр:

def hours(day): 
    ... 

Так что ваша функция немного очистки выглядит следующим образом. Обратите внимание, что список будних дней имеет заглавное имя в соответствии с convention for constants и что range check упрощен. Кроме того, в общем случае, если вам нужно вводить одну и ту же строку кода более одного раза, может возникнуть смысл переосмыслить структуру вашего кода:

def hours(day): 
    while True: 
     try: 
      prompt = "Enter the number of hours the employee worked on {0}: ".format(day) 
      hours = int(raw_input(prompt)) 
      if 0 <= hours <= 24: 
       return hours 
     except ValueError: 
      pass # Silently catch failure. 
     print "Please enter a whole number that is more than zero & less than 24" 

WEEKDAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] 
for day in WEEKDAYS: 
    print hours(day) 
+0

thx так много. работал как шарм !!! – Chopwise

0

Если вы используете Python 3. Просто сделайте это hours = int(input("Enter the number of hours the employee worked on: "))

Смежные вопросы