ai教我校验“顺序”四则运算expression(re“非捕获组”应用)

与ai学伴聊天对掐,学到了re非捕获组匹配。


(笔记模板由python脚本于2024年09月25日 23:21:14创建,本篇笔记适合初通Python,熟悉六大基本数据(str字符串、int整型、float浮点型、list列表、tuple元组、set集合、dict字典)的coder翻阅)


【学习的细节是欢悦的历程】


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


等风来,不如追风去……


与ai学伴聊天对掐
校验expression
(学到了re非捕获组匹配)


本文质量分:

96 96 96

本文地址: https://blog.csdn.net/m0_57158496/article/details/142535547

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ ai教我校验“顺序”四则运算expression
    • 1、题目描述
      • 1.1 题目截屏图片
      • 1.2 题目文本
    • 2、ai聊天对掐
    • 3、校验代码(Python)
      • Python 脚本
      • 代码运行效果
    • 4、re非捕获组匹配


◆ ai教我校验“顺序”四则运算expression


1、题目描述


1.1 题目截屏图片

  • 题目描述截屏图片
    在这里插入图片描述

题目来源于博主MoonTinan文章“简单计算器


1.2 题目文本

C语言题目:

模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。

输入格式:
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结 束。

输出格式:
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

输入样例:
1+2*10-10/2=
输出样例:
10
代码长度限制:
16 KB

时间限制:
400 ms

内存限制:
64 MB

注意: 除0问题,逻辑或逻辑与问题,最后一个操作数的保存问题(使读入’='时也进行记录储存,并通过break跳出而不通过外部设定循环条件跳出),for循环条件的正序与逆序 。



回页目录


2、ai聊天对掐


![在这里插入图片描述](https://img-blog.csdnimg.cn/5f1222c3000c49a490893321599fdf97.jpg =280x)

在这里插入图片描述

在这里插入图片描述


3、校验代码(Python)

Python 脚本

#!/sur/bin/nve python3
# coding: utf-8 
import re


# 正则表达式
pattern = r'^[+-]?\d+(?:[+\-*/]\d+)*$'

# 测试字符串
test_strings = [
    "123",
    "-123",
    "+123",
    "123+456",
    "123-456",
    "123*456",
    "123 /456",
    "-123+456",
    "+123-456",
    "123+456-789*0",
    "123+",
    "123-",
    "+-*/",
    "abc",
    "123abc",
    "123+abc"
]

# 测试正则表达式
for s in test_strings:
    if re.fullmatch(pattern, s):
        print(f"'{s}' matches.")
    else:
        print(f"'{s}' does not match.")

代码运行效果

在这里插入图片描述


回页目录


4、re非捕获组匹配


  re非捕获组匹配,其与“捕获组”区别是,在组开始前有“非”申明,即?:标识。?:标识即告诉python解释器,这个圆括号内的原字符串,是需匹配原字符的一部分,不是分别捕获的捕获组。

如:

#!/sur/bin/nve python3
# coding: utf-8 
import re


pattern = r'(梦幻)+\w{5}'
pattern2 = r'(?:梦幻)+\w{5}'
text = '梦幻精灵_cq梦幻小精灵梦幻技巧梦幻色彩梦幻小屋'
print(f"\n{text = }\n\n{pattern = }\n{re.findall(pattern, text)}",
	f"\n\n{pattern2 = }\n{re.findall(pattern2, text)}")

  • 代码运行效果
    在这里插入图片描述
      非捕获组匹配(?:xxx)是捕获字符串的一部分,它不像捕获组(xxx)会独立从给定字符串中匹配。



回页首


上一篇:  简单计算器(python基础代码撰写)(简单计算器:仅适用无括号加减乘除,算法初阶,代码基础,不调库或模块“纯”手撕)
下一篇: 



我的HOT博:

  本次共计收集 311 篇博文笔记信息,总阅读量43.82w。数据于2024年03月22日 00:50:22完成采集,用时6分2.71秒。阅读量不小于6.00k的有 7 7 7篇。


推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

来源:老齐教室


Python 入门指南【Python 3.6.3】


好文力荐:


CSDN实用技巧博文:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值