天数计算一直出错,实在是不太理解怎么改,其他的题目也需要帮助
6条回答
关注
获得3.15元问题酬金 # 1. 斐波那契 import math import random import numpy as np def fib_recur(n): if n in (0, 1): return n return fib_recur(n - 1) + fib_recur(n - 2) m = 3 n = 10 l = [] for i in range(0, n): l.append(fib_recur(i)) print(l) # 2.输出N的多次方 def f_N(x, n): return np.power(x, n) print(f_N(n, 0), f_N(n, 1), f_N(n, 2), f_N(n, 3), f_N(n, 4), f_N(n, 5)) # 3. M与N的数学运算,和,乘积,幂,余数,较大值 # m = eval(input()) # n = eval(input()) print(m + n, m * n, np.power(m, n), m / n, max(m, n)) # 4. 天数计算 # str = input() str = '2000,2' y, m = str.split(",") y = int(y) m = int(m) list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] if y % 400 == 0 or y % 4 == 0 and y % 100 != 0: list[1] = 29 print(list[m - 1]) # 5.对指定r计算圆的面积 def getCircleArea(r): return 2 * np.pi * r n = int(input()) for i in range(n): r = float(input()) print(getCircleArea(r)) # 6. 计算三维空间某点距离原点的欧式距离 def distance(x, y, z): return np.sqrt(x * x + y * y + z * z) x, y, z = input().split(",") d = distance(float(x), float(y), float(z)) print(d) # 7. 输入一个正整数,判断是否位质数 def isZhi(n): if (n == 1 or n == 2): return True for i in range(2, math.sqrt(n)): if (n % i == 0): return False return False flag = isZhi(n) print(str(flag)) # 生成随机密码 np.random.seed(0x1010) str = 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ' for i in range(10): random_str = ''.join(random.sample(str, 10)) print(random_str) # 要求密码首字母不同,去掉首字母再去生成下一个密码 str = str.replace(random_str.__getitem__(0), '') # 不同数字之和 N = input() setN = set(list(N)) print(sum([int(i) for i in setN]))
解决 1无用
关注
获得3.15元问题酬金 看到题主提到了天数计算出错较多,写了一下天数计算的,
其实天数计算题目难度是不难的,但是需要注意一些细节,这些细节处理好,问题是不大的:
(1) 一月、三月、五月、七月、八月、十月和十二月有31天;其他月份都有30天。
(2) 二月在非闰年有28天,闰年有29天。
(3) 要判断是否是闰年(年份%4 == 0和年份%100!=0)| |(年%400==0)
程序实现如下:# 月份天数初始化列表,索引代表月份 # 0 占位用的 month_days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] def is_leap(year): """返回 True 闰年, False 非闰年.""" # 能被4整除且(不能被100整除或能被400整除) return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) def days_in_month(year, month): """返回当年当月天数""" if not 1 <= month <= 12: return '无效月份 Month' if month == 2 and is_leap(year): return 29 # 返回month索引值对应的月天数 return month_days[month] # 示例 year, month = map(int, input().split()) #输入两个整数 print(days_in_month(year, month))
如有帮助,还请采纳!谢谢!
解决 无用评论 打赏 举报- 书某人.py 2022-11-11 13:27关注
获得1.05元问题酬金 1.输出斐波拉契数列的前n项
def fib(n): if n == 0: return 0 elif n == 1 or n == 2: return 1 else: return fib(n-2) + fib(n-1) n = int(input('')) l = [] for i in range(n+1): l.append(fib(i)) for j in range(len(l)): print(l[j], end='') if j != len(l)-1: print(',', end='') print()
运行结果:
2.N的多次方
a = input() try: a = int(a) except: a = float(a) n1 = a**0 n2 = a**1 n3 = a**2 n4 = a**3 n5 = a**4 n6 = a**5 print(n1, n2, n3, n4, n5, n6)
运行结果:
3.M与N的数学运算
def Operation(m, n): print(m + n) print(m * n) print(m ** n) print(m % n) if m > n: print(m) else: print(n) m = input() n = int(input()) try: m = int(m) except: m = float(m) Operation(m, n)
运行结果:
4.天数计算
import calendar data = input().split(',') year = int(data[0]) month = int(data[1]) if (month == 1) or (month == 3) or (month == 5) or (month == 7) or (month == 8) or (month == 10) or (month == 12): print(31) elif (month == 4) or (month == 6) or (month == 9) or (month == 11): print(30) else: if calendar.isleap(year): print(29) else: print(28)
运行结果:
5.对指定r计算圆的面积
def getCircleArea(r): return round(3.14 * r * r, 2) n = int(input()) for i in range(n): r = float(input()) print(getCircleArea(r))
运行结果:
6.计算三维空间某点距离原点的欧式距离
def distance(x, y, z): return (x**2 + y**2 + z**2) ** 0.5 x, y, z = input().split(',') d = distance(float(x), float(y), float(z)) print(d)
运行结果:
7.输入一个正整数,判断是否为质数
n = int(input('')) if n > 1: for i in range(2, n): if n % i == 0: print(False) break else: print(True) else: print(False)
运行结果:
8.同符号数学运算
n = int(input()) print(abs(n), end=' ') if n < 0: print((n + 10)*(-1), end=' ') print((n - 10)*(-1), end=' ') print((n * (-10))*(-1)) else: print((n + 10), end=' ') print((n - 10), end=' ') print((n * (-10)))
运行结果:
9.整数阶乘组合计算
import re from math import factorial as fac def get_k(n, a): nn = fac(n) for k in range(1, n): ak = a**k if nn % ak == 0 and nn % (ak * k) != 0: return k inp = input('') n, a = [int(i) for i in re.findall(r'\d+', inp)[:2]] print(get_k(n, a))
运行结果:
10.基本统计值计算
import numpy data_i = input().split(',') data = [] for i in data_i: data.append(int(i)) a = round(numpy.mean(data), 2) print('平均值:', a) b = round(numpy.std(data), 2) print('标准差:', b) s = 0 data.sort() n = len(data) if n % 2 == 0: s = (data[n//2] + data[(n+2)//2])/2 else: s = data[(n+1)//2] print('中位数:', int(s))
运行结果:
11.生成随机密码
import random string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' s = len(string) k1 = '' for i in range(10): k1 += string[random.randint(1, s)-1] print(k1) k2 = '' for i in range(10): k2 += string[random.randint(1, s)-1] print(k2) k3 = '' for i in range(10): k3 += string[random.randint(1, s)-1] print(k3) k4 = '' for i in range(10): k4 += string[random.randint(1, s)-1] print(k4) k5 = '' for i in range(10): k5 += string[random.randint(1, s)-1] print(k5) k6 = '' for i in range(10): k6 += string[random.randint(1, s)-1] print(k6) k7 = '' for i in range(10): k7 += string[random.randint(1, s)-1] print(k7) k8 = '' for i in range(10): k8 += string[random.randint(1, s)-1] print(k8) k9 = '' for i in range(10): k9 += string[random.randint(1, s)-1] print(k9) k10 = '' for i in range(10): k3 += string[random.randint(1, s)-1] print(k10)
运行结果:
12.数字不同数之和
n = input() d = [] for i in n: if int(i) in d: pass else: d.append(int(i)) s = 0 for j in d: s += j print(s)
运行结果:
望采纳。
解决 无用评论 打赏 举报 - Ko-walski 2022-11-06 13:14关注解决评论 打赏 举报无用 1
- 杨同学* 2022-11-07 01:27关注解决评论 打赏 举报无用 1
- 语言-逆行者 2022-11-10 16:29关注解决评论 打赏 举报无用 1