在写一个计算器时遇到了一个问题,就是对字符串表示的算术表达式的合法性判断与求值。下面记录一下我的解决方案。
一、问题描述
问题:给定一个字符串,只包含 ‘+’、’-‘、’*’、’/‘、数字、小数点、’(‘ 、’)’。
要求:(1) 判断该算术表达式是否合法; (2) 如果合法,计算该表达式的值。
李松
在写一个计算器时遇到了一个问题,就是对字符串表示的算术表达式的合法性判断与求值。下面记录一下我的解决方案。
问题:给定一个字符串,只包含 ‘+’、’-‘、’*’、’/‘、数字、小数点、’(‘ 、’)’。
要求:(1) 判断该算术表达式是否合法; (2) 如果合法,计算该表达式的值。
在Unix/Linux系统中,要获取一个指定目录下所有的文件或文件夹,一般用dirent.h
(POSIX标准定义的目录操作头文件)。
在头文件<dirent.h>
中定义了两种主要的数据类型。
DIR:代表一个目录流的结构。
下面是网易的一道笔试题:struct { uint32_t m1; char m2; } varray[2];
以下哪些判断一定成立?(多选)
sizeof(varray[0]) == 5
sizeof(varray[0]) == 8
(void*)&(varray[0].m1) < (void*)&(varray[0].m2)
(char*)&varray[0] == (char*)&(varray[0].m1)
(char*)&varray[0] + sizeof(varray[0]) == (char*)&varray[1]
(char*)&(varray[0].m2) + 1 == (char*)&varray[1]
(char*)&(varray[0].m2) + 4 == (char*)&varray[1]
这个题目考查的就是内存对齐的知识点,看完这篇文章你就知道这道题应该选什么了。
C++通过继承(inheritance)和虚函数(virtual function)来实现多态性。所谓多态,简单地说就是,将基类的指针或引用绑定到子类的实例,然后通过基类的指针或引用调用实际子类的成员函数(虚函数)。本文将介绍单继承、多重继承下虚函数的实现机制。
为了支持虚函数机制,编译器为每一个拥有虚函数的类的实例创建了一个虚函数表(virtual table),这个表中有许多的槽(slot),每个槽中存放的是虚函数的地址。虚函数表解决了继承、覆盖、添加虚函数的问题,保证其真实反应实际的函数。
正则表达式(Regular Expression)是字符串处理的常用工具,通常被用来检索、替换那些符合某个模式(Pattern)的文本。很多程序设计语言都支持正则表达式,像Perl、Java、C/C++。在 Python 中是通过标准库中的 re 模块 提供对正则的支持。
1)用途
通过使用正则表达式,可以:
Python中内置了很多的函数,而学习标准库我们需要事先熟悉这些内置函数,所以在这里一个个进行介绍。有些函数比较简单,只给予文字描述,而有些函数会给出示例代码帮助理解。
1、abs(x)
:返回一个整数或浮点数的绝对值,如果是复数,返回它的模。
2、all(iterable)
:当 iterable 中所有元素都为 True 时(或者 iterable 为空),返回 True 。
3、any(iterable)
:当 iterable 中有元素为 True 时,则返回 True 。如果 iterable 为空,返回 False 。
Python是一门强大的解释型、面向对象的高级程序设计语言,它优雅、简单、可移植、易扩展,可用于桌面应用、系统编程、数据库编程、网络编程、web开发、图像处理、人工智能、数学应用、文本处理等等。
在学习Python的过程中,我做了一个比较详细、比较系统的学习笔记,适合Python的初学者用以快速入门。它讲解了Python 3.x的基本语法和高级特性,从基本数据类型、运算符、流程控制、函数、文件IO到模块、异常处理和面向对象,并且附上了很多经过测试的代码帮助读者去理解。
如果你是一个Python初学者,希望这个学习笔记能够对你有所帮助。相信如果你看完这个学习笔记,你会对Python有一个整体的了解。
在类的初印象中,我们已经简单的介绍了类,包括类的定义、类对象和实例对象。本文将进一步学习类的继承、迭代器、发生器等等。
单继承
派生类的定义如下:1
2
3
4
5
6class DerivedClassName(BaseClassName):
<statement-1>
.
.
.
<statement-N>
Python是一种面向对象的脚本语言,所以它也提供了面向对象编程的所有基本特征:允许多继承的类继承机制、派生类可以重写它父类的任何方法、一个方法可以调用父类中同名的方法、对象可以包含任意数量和类型的数据成员。关于继承,将在下一篇博文里面介绍,本文只简单的介绍Python中的类的定义和使用。
最简单的类的定义形式:1
2
3
4
5
6class ClassName:
<statement-1>
.
.
.
<statement-N>
本文主要介绍Python中的错误和异常,涉及到简单的异常处理、抛出异常以及清理动作。至于自定义异常类,将在介绍类与继承的时候讲到。
常见的两种错误:语法错误 和 异常。
1、语法错误(Syntax Errors)
语法错误,也就是解析时错误。当我们写出不符合python语法的代码时,在解析时会报SyntaxError,并且会显示出错的那一行,并用小箭头指明最早探测到错误的位置。比如: