@@ -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