有没有一个简洁的方法来简化这个if语句?我需要n〉= 2且〈= 100,并且value每隔7步增加1(除了第一步应该在2和7之间,最后一步应该在98和100之间)。
if n >= 2 and n <= 7:
value = 1
elif n > 7 and n <= 14:
value = 2
elif n > 14 and n <= 21:
value = 3
elif n > 21 and n <= 28:
value = 4
elif n > 28 and n <= 35:
value = 5
elif n > 35 and n <= 42:
value = 6
elif n > 42 and n <= 49:
value = 7
elif n > 49 and n <= 56:
value = 8
elif n > 56 and n <= 63:
value = 9
elif n > 63 and n <= 70:
value = 10
elif n > 70 and n <= 77:
value = 11
elif n > 77 and n <= 84:
value = 12
elif n > 84 and n <= 91:
value = 13
elif n > 91 and n <= 98:
value = 14
elif n > 98 and n <= 100:
value = 15
编辑:此外,我很难从下面的问题中找到可能的最小数:
火柴棍是表示数字的理想工具。用火柴棍表示十位小数的常用方法如下:
这与普通闹钟上显示数字的方式是一样的。使用给定数量的火柴棒,您可以生成各种数字。我们想知道使用所有火柴棒可以生成的最小和最大数字是多少。
- 输入:*
第一行上有一个正数:测试用例的数量,最多100个。之后,每个测试用例:
具有整数n(2〈= n〈= 100)的一行:你有多少根火柴。
- 输出:*
每个测试用例:
在一行中包含您可以创建的最小和最大数字,用一个空格分隔。这两个数字都应该是正数,并且不包含前导零。
我已经尝试了多种不同的方法来尝试解决这个问题,我目前正在尝试:
1.找出最小数字的最小位数(值):
快速
def values(n):
if 2 <= n <= 100:
value = (n + 6) // 7
minimum(n, value)
1.现在我想把value发送给函数minimum(),它会生成value长度的所有不同的数字组合。我想把所有这些数字存储在一个列表中,然后用min()来得到最小的一个。我还没有让这部分工作起来,希望能得到一些启发。
需要记住的是,数字不能以0开头。
2条答案
按热度按时间sbtkgmzw1#
除非我弄错了,否则这应该适用于第2部分:
而且,虽然这是一个不用动脑筋:
qf9go6mv2#
下面是一种简化在Python中提供的if语句的方法:
此程式码使用整数除法(“//”运算子)将“n”的值除以7,并将结果加1。如果“n”的值小于或相等100,则会给予与原始if陈述式相同的结果。否则,会将“value”设定为None。
下面是此代码如何工作的示例:
我希望这对你有帮助!如果你有任何其他问题,请告诉我。