一些简单的小程序(2)

目录:
程序1:求方程a * x ** 2 + b * x + c = 0的根
程序2:输入今天是周几,求出指定天数后的某天是周几
程序3:将输入的数字升序
程序4: 求星期几(蔡勒公式)

程序1:求方程a * x ** 2 + b * x + c = 0的根

## 本文规定:
## 常量全部用大写形式,如: USER_IS_NAME
## 变量格式,如: userIsName
## python3
a, b, c = eval(input("输入a, b, c的值, (如3, 5, 7): "))

# 若discriminant大于0,则方程有两个根
# 等于0,则有一个根,小于0,没有根
discriminant = (b ** 2) - (4 * a * c)

if discriminant > 0:
    r1 = (-b + (discriminant ** 1 / 2)) * (1 / (2 * a))
    r2 = (-b - (discriminant ** 1 / 2)) * (1 / (2 * a))
    print("The roots are " + str(int(r1)) + " and " + str(int(r2)))
elif discriminant == 0:
    r = (-b - (discriminant ** 1 / 2)) * (1 / (2 * a))
    print("The roots is " + str(int(discriminant)))
else:
    print("The equation has no real roots")

程序2:输入今天是周几,求出指定天数后的某天是周几

weeks = {0: "周日", 1: "周一", 2: "周二", 3: "周三", \
         4: "周四", 5: "周五", 6: "周六"}

for i in range(7):
    print(i, weeks[i], end = "|")
print()

# What day is it today?
todayWeek = eval(input("今天周几, 如5: "))
# Want to know how many days in the future will be the days of the week
# 用户想知道未来多少天后星期几
futureWeek = eval(input("未来多少天后,如5: "))

days = (futureWeek + todayWeek) % 7
k = print("未来的第 %d 天后是: " % futureWeek, weeks[days])

程序3:将输入的数字升序

List = []
userSortingDigital = eval(input("用户想给多少个数字排序,(如7): ")) + 1

for i in range(1, userSortingDigital):
    x = eval(input("输入第 " + str(i) + " 个数字: "))
    List.append(x)

List = sorted(List)
print("升序为: ")
for i in range(0, int(userSortingDigital) - 1):
    print(List[i], end = ' ')

程序4: 求星期几(蔡勒公式)

# which year?
y = eval(input("第多少年(如1965年,则输入65): "))
# Which century?
c = eval(input("第多少世纪,(如21世纪,则输入21): ")) - 1
# Which month?
m = eval(input("第多少月,(如6月,则输入6): "))
if m <= 2:
    m += 12
# Which day?
d = eval(input("第多少日, (如6月7日, 则输入7): "))

# Which week?
# Calculated using the Zeil formula(用蔡勒公式进行计算)
w = int((y + y // 4 + c // 4 - 2 * c + (26 * (m + 1) //10) + d - 1)) % 7

print("这一天是周", w)

 

posted @ 2018-06-03 20:25  类十三  阅读(466)  评论(0编辑  收藏  举报