我正在尝试制作一个Python脚本,该脚本将基于DOB告诉您出生的日子。
但是我需要这样做,如果您是在“ 2月”,“ 4月”,“ 6月”,“ 9月”,“ 11月”这两个月出生的,那么就需要有一个不同的方程式,所以现在我做到了,因此,如果您将日期设置为“ 6”(6月),那么
print("This Is True")
所以我这样安排了
if M == '2':
i = 30
X = 'Answer'
if M == '4':
i = 30
X = 'Answer'
if M == '6':
i = 30
X = 'Answer'
if M == '9':
i = 30
X = 'Answer'
if M == '11':
i = 30
X = 'Answer'
os.system('CLS')
if X == 'Answer':
print('This Is True')
input()
elif X != 'Answer':
print('This is False')
input()
但是当它不是上面列出的月份之一时,它将
print('This is False')
但是,当我输入“ 10”(十月)之类的程序时,程序将关闭并且不会显示“ This is False”。
我知道我今天问了很多问题,但是再一次(如果您不能通过代码告诉我)我很新
如果有人还想指出一些有关代码可能会变得更好的提示,那么这里就是所有
import os
M = 'Monday'
T = 'Tuesday'
W = 'Wednesday'
TT = 'Thursday'
F = 'Friday'
S = 'Saturday'
SS = 'Sunday'
print('Enter Your DOB as DD/MM/YYYY: ')
D = input("Day: ")
M = input("Month: ")
if M == '2':
i = 30
X = 'Answer'
if M == '4':
i = 30
X = 'Answer'
if M == '6':
i = 30
X = 'Answer'
if M == '9':
i = 30
X = 'Answer'
if M == '11':
i = 30
X = 'Answer'
Y = input("Year: ")
if (len(Y)) < 4:
print('You Have Entered A Too Short Or Too Long of a Year')
input()
os._exit(0)
os.system('CLS')
if X == 'Answer':
print('This Is True')
elif X != 'Answer':
print('This is False')
input()
os.system('CLS')
print("You Were Born On A:")
input("Press ENTER To Exit")
答案 0 :(得分:2)
也许这对您来说可能太高级了,但是我们有一个名为bug report active with MS Edge dev team的模块,专门用于此类操作,因此您的代码可以大大缩短
import os
import datetime
#Get date in correct format from user
dob = input('Enter Your DOB as DD/MM/YYYY:')
#Convert to datetime object
date_obj = datetime.datetime.strptime(dob, '%d/%m/%Y')
#Get day of week
print("You Were Born On A {}".format(date_obj.strftime("%A")))
输出看起来像
Enter Your DOB as DD/MM/YYYY:31/01/1991
You Were Born On A Thursday
此外,还有其他一些方法可以改善以前的代码。
weekdays
if-else
之类的列表来保存您的所有月份,而不用['2' , '4', '6', '9', '11']
来列表,然后使用in
来检查月份是否结帐,以及是否使用{{ 1}},请检查MM
等02,04,06...
退出代码因此,对代码的改进可能看起来像
sys.exit()
答案 1 :(得分:0)
为什么不使用True / False
我重写了一些内容,并添加了@Max的想法
<div id="case_1">Case 1: <span></span></div>
<div id="case_2">Case 2: <span></span></div>
答案 2 :(得分:0)
请注意代码中的一些错误:
首先,将M
变量实例化为Monday
(M = 'Monday'
),然后用用户(M = input("Month: ")
)的输入覆盖它的值< / p>
仅当您的X
之一设置为if
时才创建true
变量,这意味着M
是`2,4,6之一。 9、11)
您应该在X
之外创建if
类似:
day = int(input("Day: "))
month = int(input("Month: "))
X = "Not Answer"
if M in (2, 4, 6, 9, 11):
i = 30
X = 'Answer'
...
if X == 'Answer':
print('This Is True')
else:
print('This is False')
input()