我有一个代码,我在whichweek
中传递一个值,然后它返回dayf
和dayt
的值。我正在使用if语句,但它很长,一点都不“pythonic”。有什么优雅的方式来写这个吗?
我是这样做的:
if whichweek == 5:
dayf = 0
dayt = 32
elif whichweek == 1:
dayf = 0
dayt = 8
elif whichweek == 2:
dayf = 7
dayt = 15
elif whichweek == 3:
dayf = 14
dayt = 22
elif whichweek == 4:
dayf = 21
dayt = 29
谢谢帮忙。
我会使用字典:
days = {
5: (0, 32),
1: (0, 8),
2: (7, 15),
3: (14, 22),
4: (21, 29)
}
dayf, dayt = days[whichweek]
是的,很少有人能让它更像python,我会用一本字典来整理所有的数据,比如:
import random
if __name__ == "__main__":
random.seed(1)
week_data = {
1: (0, 32),
2: (0, 8),
3: (7, 15),
4: (14, 22),
5: (21, 29)
}
for i in range(10):
whichweek = random.randint(1, 5)
dayf, dayt = week_data[whichweek]
print whichweek, dayf, dayt
如果你想处理错误,你可以使用这样的东西:
import random
if __name__ == "__main__":
random.seed(1)
week_data = {
1: (0, 32),
2: (0, 8),
3: (7, 15),
4: (14, 22),
5: (21, 29)
}
for i in range(10):
whichweek = random.randint(1, 10)
res = week_data.get(whichweek, None)
if res is None:
print("Error: {0} is not in week_data".format(whichweek))
else:
dayf, dayt = res
print whichweek, dayf, dayt
最后,如果要避免条件检查,请始终返回如下值:
import random
if __name__ == "__main__":
random.seed(1)
week_data = {
1: (0, 32),
2: (0, 8),
3: (7, 15),
4: (14, 22),
5: (21, 29)
}
for i in range(10):
whichweek = random.randint(1, 10)
dayf, dayt = week_data.get(whichweek, (None, None))
print whichweek, dayf, dayt
weeks = {1: (0, 8)}
try:
dayf = weeks[1][0]
dayt = weeks[1][1]
except (KeyError, IndexError):
pass
我有一个包含单选按钮选项的表单,我想用它来指示一组变量的值。 单选按钮如下: 我能够回声单选按钮的值 所以我确信变量正在被继承。由于我将 $_POST 值传递给元素,以便用户看到选择了哪个值,因此我想我会使用元素 ID 来获取我的 if-else 语句的值。 下面是我的if-else语句的样子: 然后,我将此URL传递给一个按钮,该按钮有一个空的href,其中包含以下行: 但是,每当我单击链接时,
本文向大家介绍Python3之不使用第三方变量,实现交换两个变量的值,包括了Python3之不使用第三方变量,实现交换两个变量的值的使用技巧和注意事项,需要的朋友参考一下 method 1: method 2: 以上这篇Python3之不使用第三方变量,实现交换两个变量的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
在两行中编写一段代码,即交换两个变量而不使用第三个变量。在java中有可能吗
问题内容: 我在Javascript中有一组全局计数器变量: 等等 然后,我有了一个Javascript函数,该函数接受一个映射到这些全局计数器的“索引”数字。在此函数内部,我需要使用传递给该函数的“索引”值来读写这些全局计数器。 我希望它如何工作的示例,但当然根本不起作用: 我希望我要实现的目标是明确的。如果没有,我会尽力澄清。谢谢。 编辑说明: 我不是要增加计数器的名称,而是要增加计数器包含的
#include <stdio.h> int func(void) { int i = 2; return i; } int main(void) { int a = 0; a = func(); printf("%d\n", a); return 0; } 技巧 在gdb中,可以用“set var variable=expr”命令设置变量
我只是在学习编码,所以我遇到了“k不能解决”的问题。 我以前尝试过引入变量,如果运算符by: 我预期输出为2 相反,无法解析got k