show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次学习了 and
- and 是一个逻辑与运算符
- 都是 True 的时候
- 才返回 True
- 其余都返回 False
- 这个运算符变量可以
- 有数字、字符串、容器之类的
- 逻辑还是零、空串、空容器对应 False
- 一旦出现 False
- 就返回逻辑值 False 对应的变量
- 什么时候
- 一定要用嵌套条件
- 不能用分支条件呢?
- 多分支和嵌套分枝是什么关系呢?
- 这个逻辑是先选语言
- 后点菜
- 不选语言
- 没法点菜
#!/usr/bin/python
print("欢迎来到选择语言程序!")
print("请选择您想使用的语言:")
print("1. 中文")
print("2. English")
print("3. Deutsch")
choice = input("请输入您的选择(1/2/3):")
if choice == "1":
print("您选择了中文。")
print("欢迎光临!以下是我们的菜单:")
print("a. 宫保鸡丁")
print("b. 红烧肉")
print("c. 鱼香肉丝")
print("d. 清炒时蔬")
print("请选择您想点的菜品(输入数字):")
choice = input()
if choice == "a":
print("您选择了宫保鸡丁。")
print("菜已经下单,请等待上菜。")
elif choice == "b":
print("您选择了红烧肉。")
print("菜已经下单,请等待上菜。")
elif choice == "c":
print("您选择了鱼香肉丝。")
print("菜已经下单,请等待上菜。")
elif choice == "d":
print("您选择了清炒时蔬。")
print("菜已经下单,请等待上菜。")
else:
print("无效的选择,请重新输入。")
elif choice == "2":
print("您选择了英文。")
print("Welcome! Here is our menu:")
print("a. Kung Pao Chicken")
print("b. Red-Cooked Pork")
print("c. Fish-Flavored Shredded Pork")
print("d. Stir-Fried Greens")
print("Please choose the dish you want to order (input the number):")
choice = input()
if choice == "a":
print("You chose Kung Pao Chicken.")
print("Dish has been ordered, please wait for it to be served.")
elif choice == "b":
print("You chose Red-Cooked Pork.")
print("Dish has been ordered, please wait for it to be served.")
elif choice == "c":
print("You chose Fish-Flavored Shredded Pork.")
print("Dish has been ordered, please wait for it to be served.")
elif choice == "d":
print("You chose Stir-Fried Greens.")
print("Dish has been ordered, please wait for it to be served.")
else:
print("please try again")
elif choice == "3":
print("您已选择德文。")
print("Willkommen! Hier ist unser Speiseplan:")
print("a. Königsberger Pferdefleisch")
print("b. Rot gagasierte Schweinebraten")
print("c. Fischgeschnetzeltes mit soße" )
print("d. Gemüse mit Reis" )
print("Bitte wählen Sie das Gericht aus dem Menü (Eingabe der Nummer):" )
choice = input()
if choice == "a":
print (" Sie haben Königsberger Pferdefleisch gewählt." )
print ("Das Gericht wird gefordert, bitte warten Sie bis es serviert wird." )
elif choice == "b":
print (" Sie haben Rot gagasierte Schweinebraten." )
print ("Das Gericht wird gefordert, bitte warten Sie bis es serviert wird." )
elif choice == "c":
print (" Sie haben Fischgeschnetzeltes mit soße" )
print ("Das Gericht wird gefordert, bitte warten Sie bis es serviert wird." )
elif choice == "d":
print (" Sie haben Gemüse mit Reis." )
print ("Das Gericht wird gefordert, bitte warten Sie bis es serviert wird." )
else:
print("kaputt")
else:
print("请重新输入")
- 这个程序 就是 一个嵌套的多分枝
- 先选语言
- 再选菜
- 还有更复杂的吗?
- 真的太复杂了
- 多个条件
- 层层嵌套
"""
Author by chenmengde
"""
from datetime import datetime
def is_traffic_limited(day, day_of_week, license_plate_tail): # 定义一个函数,内含日期、星期、车牌尾号三个参数
# 2023.4.3 - 2023.7.2规则:
if (datetime(2023, 4, 3) <= day <= datetime(2023, 7, 2) and
day_of_week == "Monday" and license_plate_tail in ["4", "9"]):
return True
elif (datetime(2023, 4, 3) <= day <= datetime(2023, 7, 2) and
day_of_week == "Tuesday" and license_plate_tail in ["5", "0"]):
return True
elif (datetime(2023, 4, 3) <= day <= datetime(2023, 7, 2) and
day_of_week == "Wednesday" and license_plate_tail in ["1", "6"]):
return True
elif (datetime(2023, 4, 3) <= day <= datetime(2023, 7, 2) and
day_of_week == "Thursday" and license_plate_tail in ["2", "7"]):
return True
elif (datetime(2023, 4, 3) <= day <= datetime(2023, 7, 2) and
day_of_week == "Friday" and license_plate_tail in ["3", "8"]):
return True
# 2023.7.3 - 2023.10.1规则:
elif (datetime(2023, 7, 3) <= day <= datetime(2023, 10, 1) and
day_of_week == "Monday" and license_plate_tail in ["3", "8"]):
return True
elif (datetime(2023, 7, 3) <= day <= datetime(2023, 10, 1) and
day_of_week == "Tuesday" and license_plate_tail in ["4", "9"]):
return True
elif (datetime(2023, 7, 3) <= day <= datetime(2023, 10, 1) and
day_of_week == "Wednesday" and license_plate_tail in ["5", "0"]):
return True
elif (datetime(2023, 7, 3) <= day <= datetime(2023, 10, 1) and
day_of_week == "Thursday" and license_plate_tail in ["1", "6"]):
return True
elif (datetime(2023, 7, 3) <= day <= datetime(2023, 10, 1) and
day_of_week == "Friday" and license_plate_tail in ["2", "7"]):
return True
# 2023.10.2 - 2023.12.31规则:
elif (datetime(2023, 10, 2) <= day <= datetime(2023, 12, 31) and
day_of_week == "Monday" and license_plate_tail in ["2", "7"]):
return True
elif (datetime(2023, 10, 2) <= day <= datetime(2023, 12, 31) and
day_of_week == "Tuesday" and license_plate_tail in ["3", "8"]):
return True
elif (datetime(2023, 10, 2) <= day <= datetime(2023, 12, 31) and
day_of_week == "Wednesday" and license_plate_tail in ["4", "9"]):
return True
elif (datetime(2023, 10, 2) <= day <= datetime(2023, 12, 31) and
day_of_week == "Thursday" and license_plate_tail in ["5", "0"]):
return True
elif (datetime(2023, 10, 2) <= day <= datetime(2023, 12, 31) and
day_of_week == "Friday" and license_plate_tail in ["1", "6"]):
return True
# 2024.1.1 - 2024.3.31规则:
elif (datetime(2024, 1, 1) <= day <= datetime(2024, 3, 31) and
day_of_week == "Monday" and license_plate_tail in ["1", "6"]):
return True
elif (datetime(2024, 1, 1) <= day <= datetime(2024, 3, 31) and
day_of_week == "Tuesday" and license_plate_tail in ["2", "7"]):
return True
elif (datetime(2024, 1, 1) <= day <= datetime(2024, 3, 31) and
day_of_week == "Wednesday" and license_plate_tail in ["3", "8"]):
return True
elif (datetime(2024, 1, 1) <= day <= datetime(2024, 3, 31) and
day_of_week == "Thursday" and license_plate_tail in ["4", "9"]):
return True
elif (datetime(2024, 1, 1) <= day <= datetime(2024, 3, 31) and
day_of_week == "Friday" and license_plate_tail in ["5", "0"]):
return True
else:
return False
choose1 = input("您的机动车是否悬挂北京市牌照?悬挂北京市牌照请输入\"1\",悬挂外埠牌照请输入\"0\":") # 判断是否京牌
# 本地
if choose1 == str(1): # 若京牌:
choose2 = input("您的机动车是否属于以下类别?属于请输入\"1\",不属于请输入\"0\"。"
"(一)警车、消防车、救护车、工程救险车;\n"
"(二)公共电汽车、省际长途客运车辆及大型客车、京B号段号牌出租汽车(不含租赁车辆)、邮政专用车、"
"持有市交通行政管理部门核发的旅游客车营运证件的车辆、经市公安交通管理部门核定的单位班车和学校校车;\n"
"(三)车身喷涂统一标识并执行公务的行政执法车辆和清障专用作业车辆;\n"
"(四)环卫、园林、道路养护、应急通信保障的专项作业车辆,殡仪馆的殡葬车辆;\n"
"(五)悬挂“使”字头号牌车辆及经批准临时入境的车辆;\n"
"(六)纯电动小客车(以可充电电池作为唯一动力来源、由电动机驱动的小客车)。\n") # 判断是否特种车辆
if choose2 == str(1): # 若是特种车辆:
print("不限行")
elif choose2 == str(0): # 若不是特种车辆:
choose3 = input("您的机动车是否是公务用车?是请输入\"1\",不是请输入\"0\"。") # 判断是否公车:
if choose3 == str(1): # 若是公车:
day = datetime.today() # 获取当前日期
day_of_week = datetime.now().strftime("%A") # 获取当前星期几
license_plate_tail = input("\n请输入您的机动车车牌尾号(机动车车牌尾号为字母的请输入“0”): ") # 获取车牌尾号
if is_traffic_limited(day, day_of_week, license_plate_tail):
print("今日全天限行,范围为北京市全域。")
else:
print("今日不限行。")
elif choose3 == str(0): # 若非公车,即是普通车:
day = datetime.today() # 获取当前日期
day_of_week = datetime.now().strftime("%A") # 获取当前星期几
license_plate_tail = input("\n请输入您的机动车车牌尾号(机动车车牌尾号为字母的请输入“0”): ") # 获取车牌尾号
if is_traffic_limited(day, day_of_week, license_plate_tail) and int("700") <= int(datetime.now().strftime("%H%M")) <= int("2000"):
print("当前至20时限行,范围为五环路以内道路(不含五环路)。")
else:
print("当前至(次日)7时不限行,可放心行驶。")
else:
print("\n错误!请输入\"1\"或\"0\"。") # 错误处理,下同
else:
print("\n错误!请输入\"1\"或\"0\"。")
# 外地
elif choose1 == str(0): # 若外地牌:
choose4 = input("您的机动车是载客汽车还是载货汽车?载客汽车请输入\"1\",载货汽车请输入\"0\"。") # 判断车辆类型
if choose4 == str(1): # 若是客车:
choose5 = input("您的机动车是否已办理\"进京通行证\"?已办理请输入\"1\",未办理请输入\"0\"。") # 判断是否已办通行证
if choose5 == str(1): # 已办:
choose6 = input("您办理的进京通行证属于以下那种类型?\"进京通行证(六环内)\"请输入\"1\",\"进京通行证(六环外)\"请输入\"0\"。") # 判断通行证类型
if choose6 == str(1): # 六环内:
day_of_week = datetime.now().strftime("%A") # 获取当前星期几
import datetime
from datetime import datetime
if int("700") <= int(datetime.now().strftime("%H%M")) <= int("900") or int("1700") <= int(datetime.now().strftime("%H%M")) <= int("2000"): # 判断时间,工作日高峰期限行
print("禁止在五环路主辅路及其以内道路和大兴区部分道路行驶")
elif int("900") <= int(datetime.now().strftime("%H%M")) <= int("1700"): # 平峰按规则判断
day = datetime.today() # 获取当前日期
day_of_week = datetime.now().strftime("%A") # 获取当前星期几
license_plate_tail = input("\n请输入您的机动车车牌尾号(机动车车牌尾号为字母的请输入“0”): ") # 获取车牌尾号
if (is_traffic_limited(day, day_of_week, license_plate_tail) and int("900") <= int(datetime.now().strftime("%H%M")) <= int("1700")):
print("\n当前至20时限行,范围为五环路以内道路(不含五环路),禁止驶入二环路(含)以内道路、建国门外大街、复兴门外大街、复兴路(木樨地桥至新兴桥段)。")
else:
print("\n当前至17时不限行,禁止驶入二环路(含)以内道路、建国门外大街、复兴门外大街、复兴路(木樨地桥至新兴桥段)。")
else:
print("当前至(次日)7时不限行,禁止驶入二环路(含)以内道路、建国门外大街、复兴门外大街、复兴路(木樨地桥至新兴桥段)。")
elif choose6 == str(0): # 六环外:
print("不限行,您可在通行证规定的区域(六环路及以外道路、通州区以外道路)放心行驶。")
else: # 错误处理
print("错误!请输入\"1\"或\"0\"。")
elif choose5 == str(0): # 未办理:
print("禁止驶入北京市行政区域内道路。")
else:
print("错误!请输入\"1\"或\"0\"。")
elif choose4 == str(0): # 若是货车:
choose7 = input("您的机动车是黄标车吗?是请输入\"1\",不是请输入\"0\"。") # 判断是否黄标
if choose7 == str(1): # 黄标:
print("禁止驶入北京市行政区域内道路。")
elif choose7 == str(0): # 不是黄标:
if int("600") <= int(datetime.now().strftime("%H%M")) <= int("2400"): # 判断时间,6-24时限行
print("禁止驶入六环路(含)以内道路")
else:
choose8 = input("您的机动车是否为整车运送鲜活农产品车辆?是请输入\"1\",不是请输入\"0\"。") # 判断是否绿通
if choose8 == str(1): # 若是绿通:
print("可驶入六环路(含)以内道路,全天禁止驶入长安街(新兴桥至国贸桥)、人民大会堂南侧路、西侧路、广场东、西侧路、南、北池子大街,南、北长街,府右街、王府井大街,台基厂路、中关村南路、科学院南路(知春路至北四环路)、三里河路(木樨地路口至甘家口)、万寿路(万寿路口至万寿路北口)、朱各庄路(万寿路北口至西四环中路东辅路)等道路。")
elif choose8 == str(0): # 若不是绿通:
choose9 = input("您的机动车是否已办理\"进京通行证\"?已办理请输入\"1\",未办理请输入\"0\"。") # 判断是否办理货车通行证
if choose9 == str(1): # 已办理:
print("可驶入六环路(含)以内道路,全天禁止驶入长安街(新兴桥至国贸桥)、人民大会堂南侧路、西侧路、广场东、西侧路、南、北池子大街,南、北长街,府右街、王府井大街,台基厂路、中关村南路、科学院南路(知春路至北四环路)、三里河路(木樨地路口至甘家口)、万寿路(万寿路口至万寿路北口)、朱各庄路(万寿路北口至西四环中路东辅路)等道路。")
elif choose9 == str(0): # 未办理:
print("禁止驶入六环路(含)以内道路")
else: # 错误处理,下同
print("错误!请输入\"1\"或\"0\"。")
else:
print("错误!请输入\"1\"或\"0\"。")
else:
print("错误!请输入\"1\"或\"0\"。")
else:
print("错误!请输入\"1\"或\"0\"。")
else:
pint("错误!请输入\"1\"或\"0\"。")
- 真的好复杂
- 这只是个简单的限号规则
- 更复杂的是法律
- 各行各业各个领域"皆有法式"
- 征发徭役和兵役的《徭律》、《傅律》、《敦表律》和《戍律》
- 认字的人不多
- 法律又太复杂
- 需要专业人士
- 驻守渔阳密云的队伍
- 罪不至死
- 但是 没有人知道细节
- 与父老约,法三章耳;
- 杀人者死,伤人及盗抵罪。
- 余悉除去秦法。
- 这就简单明确多了
- 但是 律法不能光简单
- 也要 细致
- 否则就容易被钻空子
- 据《晋书·刑法志》记载
- 东汉末年﹐汉律包括萧何的《九章律》
- 叔孙通《傍章》十八篇
- 张汤《越宫律》二十七篇
- 赵禹《朝律》七篇
- 又有《令甲》三百余篇
- 以及鲍昱关于嫁娶辞讼的《法比都目》
- 总共九百零六卷😳
- 这次研究了 限号规则 真的太复杂啦
- 你还见过什么复杂的规则吗?
- 可以做成python程序吗?
- 生活中很多数值都是天然有范围限制的
- 对于这些数值 应该如何判断呢?
- 下次再说 👋