Python语言标识符及运算符的正则定义 0、题目重现: 写出Python语言标识符、运算符及标点符号的正则定义,画出状态转换图并用程序实现 一、Python标识符的常见规范 命名规则 由26个英文字母大小写、0-9或下划线组成 数字不可以开头,如:int 3ab = 1; // 错误 不可以使用关键字和保留字,但能包含关鍵字和保留字. 严格区分大小,长度无限制. 如 int totalNum = 10; int n = 90; 不能包含空格,如 int a b = 90; // 错误 命名规范 包名 : aaa.bbb.ccc // 如com.ctgu.cn 类名、接口名 :XxxYyyZzz 变量名、方法名 : xxxYyyZzz 常量名: XXX YYY ZZZ …
最近在精进Python,发现Python的语言特性使它能简洁优雅的描述埃筛求素数的过程,所以写篇博做个记录。 原理 更详细的内容可以参考我的这篇博文,这里只做一个简略的介绍。 筛法,顾名思义,用数去筛选。具体流程是这样的: 对于所有待选整数:2,3,4,5,6,7,8,9,10.....选择第一个素数2,筛掉它所有的倍数得到: 2,3,5,7,9,11,13,15.....接着用下一个数3,根据步骤2可以知道这“下一个数一定是素数”,用它继续筛掉自己的倍数:2,3,5,7,11,13,17.....重复这个步骤筛下去,剩下的就全是素数了 具体实现 完整代码 ```python # 构造一个奇数生成器 def _odd_iter(): n = 1 while True: n += 2 yield n # 构造筛选器 def _not_divsible(n): return lambda x : x % n > 0 # 筛法素数生成器 def _find_prime(): yield 2 # 返回第一个素数"2" it …
类在C++中是一个很重要的应用,十分具有学习价值。 类与对象 将数据(属性)与函数(操作)合成一个整体的行为叫封装,在计算机中用类与对象来实现。在C++的类与对象中,核心思想是“函数也可以是数据类型的成员” C++中类的定义 C++中类是一种数据类型。 类的属性 在实际运用中,一种客观事物往往要用到不同的数据类型来描述它不同方面的属性。如商场中的商品:名称:字符串;数量:整型;单价:浮点数;总价:浮点数; 这里运用了三种不同数据类型的四个不同数据成员来描述同一种商品。 上述内容在C++中可以如下表示 : class CGoods{ private : char Name[21] ; int Amount ; float Price ; float Total_value ; }; 其中class是数据类型说明符,表示以下声明的是一个类;"class CGoods"是类头;花括号内的被称为类体,类体内定义了类成员表CGoods是这个类的类型名;public关键字是一种访问限定符。 访问限定符一共有三种:public、 private、protected。第一种说明的成员可以在类体外访问,后两种则不能。限定符的作用域从该符开始一直到下一个限定符前或类体结束前。如果没有设置限定符,那么系统默认为private。private和protected都体现了类具有的封装性。 类的操作 类中除了属性,更重要的部分是对类成员的操作,它们用函数来完成。 class CGoods{ private : char Name[21] ; int Amount ; float Price ; float Total_value …
在pta上完成数据结构的课程作业时发现一道很有意思的题,记录一下。传送门 题面 本题要求编写程序,计算N个有理数的平均值。 输入 输入第一行给出正整数N(≤100);第二行中按a1/b1,a2/b2...的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。 输出 在一行中按a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。 样例 样例输入1 4 1/2 1/6 3/6 -5/10 样例输出1 1/6 样例输入2 2 4/3 2/3 样例输出2 1 这题成功的让我拓宽了关于c语法的知识面,所以我在此记录下来,虽然它不算经典意义上的难题与要题。 首先,因为题目中指明是有理数,所以可以求最小公约数来约分计算,难度降低了不少。使用C++的pair类来存储分子与分母,然后分别读入它们再累加求平均数即可。 #include <cmath> #include <cstdio> #include <utility> …