题目
- 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
- 输入某年某月某日,判断这一天是这一年的第几天?
解析
- 嵌套循环。首先,外层循环变量i从1到4进行迭代。然后,内层循环变量j和k也从1到4进行迭代。在每次迭代中,代码会检查i、j和k的值是否两两不同。如果满足条件,则打印出i、j和k的值。
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if (i != j) and (i != k) and (j != k):
print(i, j, k)
运行结果
2. 首先,通过input函数分别获取输入的年、月和日,并将其转换为整数。
然后,定义了一个元组months,其中包含了每个月份对应的天数之和。注意到这里使用0作为元组中的第一个元素,这是因为月份从1开始计数,而列表的索引是从0开始计数。
接下来,通过判断month的值是否在1到12之间来确定输入的月份是否有效。如果有效,则通过months[month - 1]来获取该月之前所有月份的天数之和,并将其赋给变量sum。否则,在控制台打印出"出错啦!"。
接着,将day添加到sum中,得到截止到目标日期的总天数。
然后,根据闰年规则判断year是否为闰年,并将结果保存在变量leap中。如果year能被400整除,或者能被4整除但不能被100整除,则year是闰年。
最后,在leap等于1且month大于2时,将sum增加1。这是因为在闰年的情况下,2月有29天而不是28天。
最终,通过字符串格式化操作符 % 将sum的值插入到字符串中,并打印出结果