2021-06-25

对用户星座进行分析并输出结果

# 以1月20日开始(水瓶座),根据星座的日期间隔,按顺序建立日期间隔的星座日期列表
sdate = (20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 21)
# 根据星座的顺序,根据星座出现的先后顺序,建立星座列表,列表中"摩羯座"出现两次,放到列表最前和最后
sstar = ("摩羯座","水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座")
name = input ("请输入您的名字:")
# 要求用户输入日期,以“.”分割,注意不能使用中文符号
indate = input("请输入您的生日(格式:1998.11.06):")
instr= indate.split(".")    # 把输入的日期按“.”进行分割
year = int(instr[0])        # 年
month = int(instr[1])       # 月
date = int(instr[2])        # 日
print(name + "您好!" )
if date >= sdate[month-1]:  # 如果日期大于等于日期列表中对应的前一个间隔日期
    print("您的星座是:" + sstar[month])# 输出月份数字对应的星座列表的星座
else:
    print("您的星座是:" + sstar[month-1])# 输出月份数字对应的星座列表的前一个星座

运行结果

### 时间范围匹配结合关键字过滤 在使用 `sed` 命令处理日志文件时,可以通过指定时间戳范围结合关键字匹配来提取特定数据。例如,要查找从 `2021-06-03 11:25:34` 到 `2021-06-03 11:26:02` 之间包含 `test` 或 `Test` 的日志行,可以使用正则表达式中的大小写不敏感匹配方式。 #### 使用正则表达式进行大小写不敏感匹配 `sed` 支持使用正则表达式进行模式匹配,其中可以通过 `I` 标志实现大小写不敏感匹配。例如,`/test/I` 可以匹配 `test`、`Test`、`TEST` 等不同大小写形式的字符串。在时间范围匹配中,可以将时间戳模式与关键字模式结合使用,如下所示: ```bash sed -n '/2021-06-03 11:25:34/,/2021-06-03 11:26:02/{/test/Ip}' start.log ``` 该命令的结构如下: - `/2021-06-03 11:25:34/,/2021-06-03 11:26:02/`:表示从包含 `2021-06-03 11:25:34` 的行开始,到包含 `2021-06-03 11:26:02` 的行结束的文本范围。 - `{/test/Ip}`:表示在上述范围内进一步匹配包含 `test` 的行,且 `I` 标志表示大小写不敏感匹配,`p` 表示打印匹配的行[^3]。 #### 使用 `-n` 选项与 `p` 命令结合 `-n` 选项用于禁止默认输出行为,确保只有匹配的行被输出。`p` 命令用于显式输出匹配到的行。这种组合在提取特定时间范围内且包含关键字的日志数据时非常有用。例如: ```bash sed -n '/2021-06-03 11:25:34/,/2021-06-03 11:26:02/{/test/I p}' start.log ``` 该命令将提取 `start.log` 文件中从时间戳 `2021-06-03 11:25:34` 到 `2021-06-03 11:26:02` 之间包含 `test` 或 `Test` 的所有日志条目,输出到终端或重定向到文件中[^1]。 #### 多条件匹配的扩展应用 除了使用 `I` 标志进行大小写不敏感匹配外,还可以通过正则表达式组合多个关键字进行匹配。例如,使用 `/test\|exam/I` 可以匹配包含 `test` 或 `exam` 的行,且不区分大小写。这种技术可以扩展到更复杂的日志分析场景,如匹配多个关键字或特定模式的行。 ```bash sed -n '/2021-06-03 11:25:34/,/2021-06-03 11:26:02/{/test\|exam/I p}' start.log ``` 该命令将提取 `start.log` 文件中从时间戳 `2021-06-03 11:25:34` 到 `2021-06-03 11:26:02` 之间包含 `test`、`Test`、`exam` 或 `Exam` 的所有日志条目[^3]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值