如何定义这个循环?

时间:2016-01-25 22:45:11

标签: python

我想编写一个程序,当用户键入1到7(包括1和7)之间的整数时,它会打印出星期的相应日期。这就是我到目前为止所拥有的。我无法弄清楚当x具有特定值时如何设置,程序将字符串打印到另一个特定值,即当用户写1时,程序应该打印str(0)是'MONDAY'

x = (int(input('please type a number from 1 to 7, both inclusive: ')))

days_of_the_week = ['MONDAY',
                    'TUESDAY',
                    'WEDNESDAY',
                    'THURSDAY',
                    'FRIDAY',
                    'SATURDAY',
                    'SUNDAY']

for x in range(8):
    for d in range(0,7):
        print(days_of_the_week(d))

回答!我使用了字典,它比使用列表和所有循环更好。谢谢!

4 个答案:

答案 0 :(得分:2)

摆脱那些嵌套循环;你根本不需要它们。使用方括号访问list,而不是括号。 list是0索引的(它们的第一个元素是元素号0),所以你要用这个替换这些循环:

print(days_of_the_week[x-1])

答案 1 :(得分:0)

直接回答这个问题,

days_of_the_week = {1: 'MONDAY',
                    2: 'TUESDAY',
                    3: 'WEDNESDAY',
                    4: 'THURSDAY',
                    5: 'FRIDAY',
                    6: 'SATURDAY',
                    7: 'SUNDAY',
                    }
x = int(input('Please type a number from 1 to 7, both inclusive: '))
print(days_of_the_week[x])

会做你想要的。但我会将这些名字存储在字典中:

SELECT * FROM "user";

答案 2 :(得分:-1)

您要在此处执行的操作是选择编号与用户输入相对应的日期。但是,数组从0开始,因此您需要从输入中减去1以匹配相应的日期。如果你没有执行(x-1),那么输入1会输出:TUESDAY,因为TUESDAY是从0开始的数组中的元素1.(在这种情况下,MONDAY是元素0.)我不会详细介绍为什么这些从零开始,但有一个good reason。不过,我不确定你对for循环做了些什么。

x = (int(input('please type a number from 1 to 7, both inclusive: ')))

days_of_the_week = ['MONDAY', 'TUESDAY','WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']
print(days_of_the_week[x-1])

答案 3 :(得分:-2)

if( 1 <=x || x => 7)
   print(days_of_the_week[x-1]);
else:
   print("incorrect input");

您可以根据需要设置错误语句的格式。