python代码询问

在获取星期字符串中:
WeekNamePrintV1.py
weekStr = "星期一星期二星期三星期四星期五星期六星期日"
weekId = eval(input("请输入星期数字(1-7):"))
pos = (weekId – 1 ) * 3
print(weekStr[pos: pos+3])

pos = (weekId – 1 ) * 3
print(weekStr[pos: pos+3])
看不懂这两行代码,牛人帮忙解释一下,谢谢

因为星期字符串weekstr是一个每三个一个星期名称,且索引从0开始,因此用
pos = (weekId – 1 ) * 3获取每个星期数的首个字索引。比如输入为7,则在字符串中索引为18位置取字,即星期日的星字。
print(weekStr[pos: pos+3])就是从pos位置向后取三位,字符串切片获取三个字符,即星期几。

weekstr是一个定义的字符串
读取输入的数字,假设输入的数字为i
输出就从字符串的第3*(i-1)开始切片
因为索引从0开始,所以要减一
后面输出对对字符串起始位置开始读取3个字符输出

首先,weekStr是个字符串,里面:
星期一 的下标是0-2
星期二 的下标是3-5
...
星期日 的下标是18-20
然后,pos=(weekId-1)*3 中pos代表的就是日期对应的起始下标。如获取星期一的字符串的起始下标为:pos=(1-1)*3=0;星期三字符串的起始下标为:pos=(3-1)*3=6
最后,print(weekStr[pos: pos+3]) 则是说输出weekStr中下标从pos到pos+3之前的字符。如weekStr[0:3]为星期一;weekStr[3:6] 为星期二。注意一点就是weekStr[a:b]中b下标的字符是取不到的。