程序将以“其他”语句退出

时间:2019-04-30 10:38:34

标签: python

我正在尝试制作一个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")

3 个答案:

答案 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

此外,还有其他一些方法可以改善以前的代码。

  1. 使用列表保存您所有的weekdays
  2. 使用if-else之类的列表来保存您的所有月份,而不用['2' , '4', '6', '9', '11']来列表,然后使用in来检查月份是否结帐,以及是否使用{{ 1}},请检查MM
  3. 使用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变量实例化为MondayM = '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()