Skip to content

Commit 3251cdd

Browse files
committed
/Users/huangjiabao/bornforthis.cn/docs/1v1/96-Four-dimensional/2022F_TT2.md
1 parent 17ebc0e commit 3251cdd

File tree

1 file changed

+286
-0
lines changed

1 file changed

+286
-0
lines changed

src/1v1/96-Four-dimensional/2022F_TT2.md

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,293 @@ In order to store the bookings, you should create a list of lists of booleans. T
207207
print(bookings[week][start_time + i])
208208
```
209209

210+
@tab 嵌套列表修改
211+
212+
```python
213+
lst = ["a", "b", "c"]
214+
lst[0] = 100
215+
print(lst) # 输出:[100, 'b', 'c']
216+
217+
lst = [['a', 'b'], ['c', 'd']]
218+
# 把 'c' 改成 'Hello'
219+
select1 = lst[1]
220+
# select2 = select1[0]
221+
select1[0] = 'Hello'
222+
# print(select2)
223+
print(lst)
224+
225+
lst = [['a', 'b'], ['c', 'd']]
226+
lst[1][0] = 'Hello'
227+
print(lst)
228+
```
229+
230+
231+
232+
:::
233+
234+
::: code-tabs
235+
236+
@tab 上课代码-完备思路
237+
238+
```python
239+
# -*- coding: utf-8 -*-
240+
# @Time : 2024/11/16 09:03
241+
# @Author : AI悦创
242+
# @FileName: lo.py
243+
# @Software: PyCharm
244+
# @Blog :https://bornforthis.cn/
245+
# code is far away from bugs with the god animal protecting
246+
# I love animals. They taste delicious.
247+
248+
# 初始化一周的预订状态,7天,每天24小时,默认False表示未预订
249+
bookings = [[False] * 24, [False] * 24, [False] * 24, [False] * 24, [False] * 24, [False] * 24, [False] * 24]
250+
251+
days_of_week = {
252+
"monday": 0,
253+
"tuesday": 1,
254+
"wednesday": 2,
255+
"thursday": 3,
256+
"friday": 4,
257+
"saturday": 5,
258+
"sunday": 6,
259+
}
260+
# print(days_of_week['monday'])
261+
# 输入星期几
262+
day = input("请输入星期几(如:monday,tuesday等):").strip().lower()
263+
if day not in days_of_week:
264+
print("输入的星期不正确,程序结束。")
265+
else:
266+
day_index = days_of_week[day]
267+
268+
# 输入起始时间
269+
start_time = input("请输入起始时间(24小时制,0-23之间的整数):").strip()
270+
# if start_time.isdigit():
271+
# pass
272+
# else:
273+
# print("时间格式不对")
274+
if not start_time.isdigit() or int(start_time) < 0 or int(start_time) > 23:
275+
print("输入的时间不在有效范围内,程序结束。")
276+
else:
277+
start_time = int(start_time)
278+
# 输入持续时间
279+
duration = input("请输入持续时间(小时,1-24之间的整数):").strip()
280+
if not duration.isdigit() or int(duration) < 1 or int(duration) > 24 or start_time + int(duration) > 24:
281+
print("持续时间不在有效范围内,程序结束。")
282+
else:
283+
duration = int(duration)
284+
# 检查时间段是否可用
285+
can_book = True # 先默认可以预定
286+
for i in range(duration):
287+
if bookings[day_index][start_time + i]:
288+
can_book = False # 不能居住
289+
break
290+
if can_book == True:
291+
# 更新预定状态
292+
for i in range(duration):
293+
bookings[day_index + i][start_time + i] = True # 列表修改值
294+
```
295+
296+
@tab 上课代码-精简思路
297+
298+
```python
299+
```
300+
301+
302+
303+
@tab 有可能的精简版
304+
305+
```python
306+
307+
```
308+
309+
@tab 备课代码
310+
311+
```python
312+
# 初始化一周的预订状态,7天,每天24小时,默认False表示未预订
313+
bookings = [[False] * 24 for _ in range(7)]
314+
315+
# 定义星期和索引映射
316+
days_of_week = {
317+
"monday": 0,
318+
"tuesday": 1,
319+
"wednesday": 2,
320+
"thursday": 3,
321+
"friday": 4,
322+
"saturday": 5,
323+
"sunday": 6
324+
}
325+
326+
# 输入星期几
327+
day = input("请输入星期几(如:monday, tuesday等):").strip().lower()
328+
if day not in days_of_week:
329+
print("输入的星期不正确,程序结束。")
330+
else:
331+
day_index = days_of_week[day]
332+
333+
# 输入起始时间
334+
start_time = input("请输入起始时间(24小时制,0-23之间的整数):").strip()
335+
if not start_time.isdigit() or int(start_time) < 0 or int(start_time) > 23:
336+
print("输入的时间不在有效范围内,程序结束。")
337+
else:
338+
start_time = int(start_time)
339+
340+
# 输入持续时间
341+
duration = input("请输入持续时间(小时,1-24之间的整数):").strip()
342+
if not duration.isdigit() or int(duration) < 1 or int(duration) > 24 or start_time + int(duration) > 24:
343+
print("持续时间不在有效范围内,程序结束。")
344+
else:
345+
duration = int(duration)
346+
347+
# 检查时间段是否可用
348+
can_book = True
349+
for i in range(duration):
350+
if bookings[day_index][start_time + i]:
351+
can_book = False
352+
break
353+
354+
if can_book:
355+
# 更新预订状态
356+
for i in range(duration):
357+
bookings[day_index][start_time + i] = True
358+
print(f"预订成功!{day.capitalize()}{start_time}:00到{start_time + duration}:00已预订。")
359+
else:
360+
print(f"预订失败!{day.capitalize()}{start_time}:00到{start_time + duration}:00时间段已有预订。")
361+
```
362+
363+
@tab 循环代码(不用看)
364+
365+
```python
366+
# 初始化一周的预订状态,7天,每天24小时,默认False表示未预订
367+
bookings = [[False] * 24 for _ in range(7)]
368+
369+
# 定义星期和索引映射
370+
days_of_week = {
371+
"monday": 0,
372+
"tuesday": 1,
373+
"wednesday": 2,
374+
"thursday": 3,
375+
"friday": 4,
376+
"saturday": 5,
377+
"sunday": 6
378+
}
379+
380+
print("\n欢迎使用预订系统!")
381+
382+
while True:
383+
print("\n请输入需要预订的信息:")
384+
385+
# 输入星期几
386+
day = input("请输入星期几(如:monday, tuesday等,输入'exit'退出):").strip().lower()
387+
if day == 'exit':
388+
print("感谢使用预订系统!")
389+
break
390+
391+
if day not in days_of_week:
392+
print("输入的星期不正确,请重新输入!")
393+
continue
394+
395+
day_index = days_of_week[day]
396+
397+
# 输入起始时间
398+
start_time = input("请输入起始时间(24小时制,0-23之间的整数):").strip()
399+
if not start_time.isdigit() or int(start_time) < 0 or int(start_time) > 23:
400+
print("输入的时间不在有效范围内,请重新输入!")
401+
continue
402+
403+
start_time = int(start_time)
404+
405+
# 输入持续时间
406+
duration = input("请输入持续时间(小时,1-24之间的整数):").strip()
407+
if not duration.isdigit() or int(duration) < 1 or int(duration) > 24 or start_time + int(duration) > 24:
408+
print("持续时间不在有效范围内,请重新输入!")
409+
continue
410+
411+
duration = int(duration)
412+
413+
# 检查时间段是否可用
414+
can_book = True
415+
for i in range(duration):
416+
if bookings[day_index][start_time + i]:
417+
can_book = False
418+
break
419+
420+
if can_book:
421+
# 更新预订状态
422+
for i in range(duration):
423+
bookings[day_index][start_time + i] = True
424+
print(f"预订成功!{day.capitalize()}{start_time}:00到{start_time + duration}:00已预订。")
425+
else:
426+
print(f"预订失败!{day.capitalize()}{start_time}:00到{start_time + duration}:00时间段已有预订。")
427+
```
428+
429+
@tab 函数实现代码(不用看)
430+
431+
```python
432+
def booking_app():
433+
# 初始化一周的预订状态,7天,每天24小时,默认False表示未预订
434+
bookings = [[False] * 24 for _ in range(7)]
210435

436+
# 定义星期和索引映射
437+
days_of_week = {
438+
"monday": 0,
439+
"tuesday": 1,
440+
"wednesday": 2,
441+
"thursday": 3,
442+
"friday": 4,
443+
"saturday": 5,
444+
"sunday": 6
445+
}
446+
447+
while True:
448+
print("\n欢迎使用预订系统!")
449+
print("请输入需要预订的信息:")
450+
451+
# 输入星期几
452+
day = input("请输入星期几(如:monday, tuesday等,输入'exit'退出):").strip().lower()
453+
if day == 'exit':
454+
print("感谢使用预订系统!")
455+
break
456+
457+
if day not in days_of_week:
458+
print("输入的星期不正确,请重新输入!")
459+
continue
460+
461+
day_index = days_of_week[day]
462+
463+
# 输入起始时间
464+
try:
465+
start_time = int(input("请输入起始时间(24小时制,0-23之间的整数):").strip())
466+
if start_time < 0 or start_time > 23:
467+
print("输入的时间不在有效范围内,请重新输入!")
468+
continue
469+
except ValueError:
470+
print("时间格式不正确,请输入整数!")
471+
continue
472+
473+
# 输入持续时间
474+
try:
475+
duration = int(input("请输入持续时间(小时,1-24之间的整数):").strip())
476+
if duration < 1 or duration > 24 or start_time + duration > 24:
477+
print("持续时间不在有效范围内,请重新输入!")
478+
continue
479+
except ValueError:
480+
print("时间格式不正确,请输入整数!")
481+
continue
482+
483+
# 检查时间段是否可用
484+
can_book = all(not bookings[day_index][start_time + i] for i in range(duration))
485+
486+
if can_book:
487+
# 更新预订状态
488+
for i in range(duration):
489+
bookings[day_index][start_time + i] = True
490+
print(f"预订成功!{day.capitalize()}{start_time}:00到{start_time + duration}:00已预订。")
491+
else:
492+
print(f"预订失败!{day.capitalize()}{start_time}:00到{start_time + duration}:00时间段已有预订。")
493+
494+
```
495+
496+
211497

212498
:::
213499

0 commit comments

Comments
 (0)