黑马程序员Python教程python re 模块及正则表达式调用认识-2

时间:2019-05-14 15:48:09下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《黑马程序员Python教程python re 模块及正则表达式调用认识-2》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《黑马程序员Python教程python re 模块及正则表达式调用认识-2》。

第一篇:黑马程序员Python教程python re 模块及正则表达式调用认识-2

python re 模块及正则表达式调用认识-2

foo匹配foo,也可以是foobar。而正则foo$只配foo.>>> print re.search(r'foo$','foo').group()

foo

>>> print re.search(r'foo$','foobar').group()#匹配失败

Traceback(most recent call last):

File “

”, line 1, in

print re.search(r'foo$','foobar').group()

AttributeError: 'NoneType' object has no attribute 'group'

>>>

在 'foo1nfoo2n' 中用foo.$进行匹配可以得到foo2,但在MULTILINE模式中得到的是foo1.对$在’foon‘中进行searching,则会匹配到两个空白,一个在新行之前,一个在字符串的结尾。

>>> print re.search(r'foo.$','foo1nfoo2n').group()

foo2

>>> print re.search(r'foo.$','foo1nfoo2n',re.M).group()

foo1

>>>

>>> print re.search(r'$','foo1nfoo2n').group()

>>>

'*'----匹配前一个字符0次或无限次

>>> print re.search(r'fo*','foooo').group()

foooo

>>> print re.search(r'fo*','f').group()#可以匹配前一个字符零次

f

>>>

’+‘----匹配前一个字符1次或无限次。ab+将匹配a之后的b至少一次。

>>> print re.search(r'fo+','foooo').group()

foooo

>>> print re.search(r'fo+','f').group()

Traceback(most recent call last):

File “

”, line 1, in

print re.search(r'fo+','f').group()

AttributeError: 'NoneType' object has no attribute 'group'

>>>

’?‘----匹配前一个字符0次或一次。ab? 将匹配a 或者ab

>>> print re.search(r'fo?','foooo').group()

fo

>>> print re.search(r'fo?','f').group()

f

>>>

*?, +?,??----'*','+','?'都是贪婪匹配限定符;尽可能多的匹配内容,但有时候没必要这样,’<.*>'对'

title

'进行匹配,将会匹配整个字符串不只是'

',对其限定符后添加‘?’,这样就会得到非贪婪匹配或者得到最小匹配。尽可能的少匹配字符;用.*?在表达式之前,则会只匹配'

'。

>>> print re.search(r'fo*?','foeeeerrfoeeb').group()# *匹配零次

f

>>> print re.search(r'fo*?','foooorrfooob').group()

f

>>> print re.search(r'fo+?','foeeeerrfoeeb').group()# + 匹配一次

fo

>>> print re.search(r'fo+?','foooorrfooob').group()

fo

>>> print re.search(r'fo??','foeeeerrfoeeb').group()# ?匹配一次

f

>>> print re.search(r'fo??','foooorrfooob').group()

f

>>>

>>> print re.search(r'<.*>','

title

').group()

title

>>> print re.search(r'<.*?>','

title

').group()

>>>

对其限定符后添加‘?’,这样就会得到非贪婪匹配或者得到最小匹配

{m}---刚好匹配m次,不少也不多

>>> print re.search(r'fo{3}','foooo').group()

fooo

>>> print re.search(r'fo{2}','foooo').group()

foo >>>

{m,n}----匹配正则m到n次,a{3,5} will match from 3 to 5'a' characters。m缺省时表示0,n缺省时表示无限次。a{4,}b will matchaaaab or a thousand'a' characters followed by ab, but notaaab.中间的逗号不能省略。

>>> print re.search(r'a{,4}b','aaab').group()

aaab >>> print re.search(r'a{4,}b','aaab').group()

Traceback(most recent call last):

File “

”, line 1, in

print re.search(r'a{4,}b','aaab').group()

AttributeError: 'NoneType' object has no attribute 'group' >>>

{m,n}?----非贪婪模式,匹配最少的m次。For example, on the 6-character string 'aaaaaa', a{3,5} will match 5'a' characters,while a{3,5}? will only match 3 characters.>>> print re.search(r'a{3,5}b','aaaaaab').group()

aaaaab

>>> print re.search(r'a{3,5}?b','aaaaaab').group()#这种后面还有字符的情况容易出错,实际还是以n来计算的

aaaaab

>>> print re.search(r'a{3,5}?','aaaaaab').group()

aaa

>>>

‘'----转义字符,用来匹配 *,?等等。不是使用raw string的情况下,Python also uses the backslash as an escape sequence in string literals;也就是不使用r'XXX时,要使用两次反斜杠才能表示一个反斜杠,用raw简单些。

>>> print re.search(r'a*?','aa*?b').group()

a*?

>>> print re.search('a*?','aa*?b').group()

a*?

>>>

[ ]---存放字符集,1)中括号中的字符可以是单个的,e.g.[amk] will match'a','m', or'k'.>>> print re.search('[amk]','sdafgfhmrtykyy').group()

a >>> print re.search('[amk].','sdafgfhmrtykyy').group()

af

>>> print re.search('[mka].','sdafgfhmrtykyy').group()

af

是或关系,匹配了a,就没有再匹配 m,k。

第二篇:黑马程序员Python教程python XlsxWriter模块创建aexcel表格-1

python XlsxWriter模块创建aexcel表格-1

安装使用pip install XlsxWriter来安装,Xlsxwriter用来创建excel表格,功能很强大,下面具体介绍:

1.简单使用excel的实例:

#coding:utf-8

import xlsxwriter

workbook = xlsxwriter.Workbook('d:suq estdemo1.xlsx')#创建一个excel文件

worksheet = workbook.add_worksheet('TEST')#在文件中创建一个名为TEST的sheet,不加名字默认为sheet1

worksheet.set_column('A:A',20)

#设置第一列宽度为20像素

bold = workbook.add_format({'bold':True})#设置一个加粗的格式对象

worksheet.write('A1','HELLO')

#在A1单元格写上HELLO

worksheet.write('A2','WORLD',bold)

#在A2上写上WORLD,并且设置为加粗

worksheet.write('B2',U'中文测试',bold)#在B2上写上中文加粗

worksheet.write(2,0,32)

#使用行列的方式写上数字32,35,5

worksheet.write(3,0,35.5)

#使用行列的时候第一行起始为0,所以2,0代表着第三行的第一列,等价于A4

worksheet.write(4,0,'=SUM(A3:A4)')#写上excel公式 worksheet.insert_image('B5','f:1.jpg')#插入一张图片

workbook.close()

2.常用方法说明 1.Workbook类

Workbook类创建一个XlsxWriter的Workbook对象,代表整个电子表格文件,存储到磁盘上.add_worksheet():用来创建工作表,默认为sheet1 add_format():创建一个新的格式对象来格式化单元格,例如bold=workbook.add_format({'bold':True})还可以使用set_bold,例如:bold=workbook.add_format()bold.set_bold()

#border:边框,align:对齐方式,bg_color:背景颜色,font_size:字体大小,bold:字体加粗

top = workbook.add_format({'border':1,'align':'center','bg_color':'cccccc','font_size':13,'bold':True})

add_chart(options):创建一个图表对象,内部是使用insert_chart()方法来实现的,options(dict类型)为图表指定一个字典属性 close():关闭文件

2.Worksheet类

worksheet代表一个Excel的工作表,是XlsxWriter的核心,下面是几个核心方法

write(row,col,*args):写普通数据到工作表的单元格,row行坐标,col列坐标,起始都是以0开始,*args为写入的内容,可以是字符串,文字,公式等,writer方法已经作为其它更具体数据类型方法的别名

write_string():写入字符串类型,worksheet.write_string(0,0,'your text')write_number():写入数字类型,worksheet.write_number('A2',1.1)write_blank():写入空类型数据,worksheet.write_blank('A2',None)wirte_formula():写入公式类型,worksheet.write_formula(2,0,'=SUM(B1:B5))write_datetime():写入日期类型数据,worksheet.write_datetime(7,0,datetime.datetime.strptime('2014-01-02','%Y-%m-%d),workbook.add_format({'num_format':'yyyy-mm-dd'}));write_boolean():写入逻辑类数据,worksheet.write_boolean(0,0,True)write_url():写入超链接类型数据,worksheet.write_url('A1','ftp://www.xiexiebang.com')write_column():写入到一列,后面接一个数组 wirte_row():写入到一行,后面接一个数组

set_row(row,height,cell_format,options):此方法设置行单元格的属性,row指定行位置,height指定高度,单位是像素,cell_format指定格式对象,参数options设置hiddeen(隐藏),level(组合分级),collapsed(折叠,例如: cell_format=workbook.add_format({'bold':True})worksheet.set_row(0,40,cell_format)设置第一行高40,加粗

set_column(first_col,last_col,width,cell_format,options):设置列单元格的属性,具体参数说明如上.worksheet.set_column(0,1,10)worksheet.set_column('C:D',20)insert_image(row,col,image[,options]):此方法是插入图片到指定单元格 例如插入一个图片的超链接为www.xiexiebang.com worksheet.insert_image('B5','f:1.jpg',{'url':'http://www.xiexiebang.com'})

第三篇:黑马程序员Python教程:Python培训专家:6个常见面试题

传智播客Python培训专家:6个常见面试题

在面试中,有一定比例是字符串处理以及网络编程那块,当然了肯定还有些其他的问题,下面帮大家找了6道题目,接下来小试牛刀吧!很简单的哦。

第1题:

Q:是否遇到过python的模块间循环引用的问题,如何避免它? A:这是代码结构设计的问题,模块依赖和类依赖 如果老是觉得碰到循环引用可能的原因有几点: 1.可能是模块的分界线划错地方了 2.可能是把应该在一起的东西硬拆开了 3.可能是某些职责放错地方了 4.可能是应该抽象的东西没抽象

总之微观代码规范可能并不能帮到太多,重要的是更宏观的划分模块的经验技巧,推荐uml,脑图,白板等等图形化的工具先梳理清楚整个系统的总体结构和职责分工

采取办法,从设计模式上来规避这个问题,比如: 1.使用 “__all__” 白名单开放接口 2.尽量避免 import

第2题:

Q: Python中如何定义一个函数

A: 有2种方法:

第1种:

def func(arg, *args, **kwagrs):

#普通函数

func_body

return

第2种:

lambda x: x **2

#匿名函数

第3题:

Q:请写出一段Python代码实现删除一个list里面的重复元素 A:

>>> L1 = [4,1,3,2,3,5,1]

>>> L2 = []

>>> [L2.append(i)for i in L1 if i not in L2]

>>> print L2

[4, 1, 3, 2, 5]

运行结果如下图:

第4题:

Q:Python是如何进行内存管理的

A: python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。所有这些都是自动完成,不需要像C一样,人工干预,从而提高了程序员的效率和程序的健壮性。

第5题:

Q:写一个简单的Python socket编程

A: socket是用来进行网络编程用的接口,网络编程分为服务器端和客户端

服务器端代码如下: import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.bind(('localhost', 8001))

sock.listen(5)

while True:

conn, addr = sock.accept()

try:

conn.settimeout(5)

buff = conn.recv(1024)

if buff == '1':

conn.send('Hello, Client...')

else:

conn.send('Please, Go Out...')

except socket.timeout:

print 'Socket Time Out...'

finally:

conn.close()

客户端代码如下: import socket

import time

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.connect(('localhost', 8001))

time.sleep(2)

sock.send('1')

print sock.recv(1024)

sock.close()

第6题:

Q:src = “security/afafsff/?ip=123.4.56.78&id=45”,请写一段代码用正则匹配出IP

A:

import re

src = “security/afafsff/?ip=123.4.56.78&id=45”

m = re.search('ip=(d{1,3}.d{1,3}.d{1,3}.d{1,3})', src, re.S)# re.S 改变'.'的行为

print m.group(1)

# 输出结果 >>> 123.4.56.78

运行结果如下:

第四篇:黑马程序员C语言教程:带你浅出python爬虫框架scrapy二)

带你深入浅出python爬虫框架scrapy(二)之前我们学习了scrapy的安装,接下来我们先简单的介绍一下使用。

一、创建一个新的Scrapy项目

scrapy startproject itcast 结构如下

│ scrapy.cfg │

└─itcast │ items.py

│ pipelines.py

│ settings.py

│ __init__.py

└─spiders __init__.py

这些文件主要是:

      scrapy.cfg: 项目配置文件

itcast/: 项目python模块, 呆会代码将从这里导入 itcast/items.py: 项目items文件 itcast/pipelines.py: 项目管道文件 itcast/settings.py: 项目配置文件 itcast/spiders: 放置spider的目录

二、定义提取的Item 它通过创建一个scrapy.item.Item类来声明,定义它的属性为scrpy.item.Field对象,就像是一个对象关系映射(ORM).我们通过将需要的item模型化,来控制从dmoz.org获得的站点数据,比如我们要获得站点的名字,url和网站描述,我们定义这三种属性的域。要做到这点,我们编辑在itcast目录下的items.py文件,我们的Item类将会是这样

from scrapy.item import Item, Field class DmozItem(Item): title = Field()link = Field()desc = Field()

三、写一个Spider用来爬行站点,并提取Items

Spider是用户编写的类,用于从一个域(或域组)中抓取信息。

他们定义了用于下载的URL的初步列表,如何跟踪链接,以及如何来解析这些网页的内容用于提取items。要建立一个Spider,你必须为scrapy.spider.BaseSpider创建一个子类,并确定三个主要的、强制的属性:

  name:爬虫的识别名,它必须是唯一的,在不同的爬虫中你必须定义不同的名字.start_urls:爬虫开始爬的一个URL列表。爬虫从这里开始抓取数据,所以,第一次下载的数据将会从这些URLS开始。其他子URL将会从这些起始URL中继承性生成。

 parse():爬虫的方法,调用时候传入从每一个URL传回的Response对象作为参数,response将会是parse方法的唯一的一个参数, 这个方法负责解析返回的数据、匹配抓取的数据(解析为item)并跟踪更多的URL。from scrapy.spider import BaseSpider

class DmozSpider(BaseSpider): name = “dmoz”

allowed_domains = [“dmoz.org”] start_urls = [ “http://#topics-selectors 这是一些XPath表达式的例子和他们的含义

    /html/head/title: 选择HTML文档元素下面的标签。/html/head/title/text(): 选择前面提到的<title>元素下面的文本内容 //td: 选择所有<td>元素</p><p>//div[@class=”mine“]: 选择所有包含 class=”mine“ 属性的div 标签元素</p><p>这只是几个使用XPath的简单例子,但是实际上XPath非常强大。</p><p>为了方便使用XPaths,Scrapy提供XPathSelector 类,有两种口味可以选择,HtmlXPathSelector(HTML数据解析)和XmlXPathSelector(XML数据解析)。为了使用他们你必须通过一个 Response 对象</p><p>对他们进行实例化操作。你会发现Selector对象展示了文档的节点结构。因此,第一个实例化的selector必与根节点或者是整个目录有关。Selectors 有三种方法</p><p>   path():返回selectors列表, 每一个select表示一个xpath参数表达式选择的节点.extract():返回一个unicode字符串,该字符串为XPath选择器返回的数据 re():返回unicode字符串列表,字符串作为参数由正则表达式提取出来</p><p>现在我们尝试从网页中提取数据</p><p>from scrapy.spider import BaseSpider from scrapy.selector import HtmlXPathSelector</p><p>class DmozSpider(BaseSpider): name = ”dmoz“</p><p>allowed_domains = [”dmoz.org“] start_urls = [ ”http://XPathSelector(response)sites = hxs.path('//fieldset/ul/li')#sites = hxs.path('//ul/li')for site in sites: title = site.path('a/text()').extract()link = site.path('a/@href').extract()desc = site.path('text()').extract()#print title, link, desc print title, link</p><p>保存抓取的数据</p><p>保存信息的最简单的方法是通过以下命令来保存数据: scrapy crawl dmoz-o items.json-t json 简单的使用就介绍这了,后面会继续为大家说明高级用法。</p><h2><a name="5" >第五篇:黑马程序员C语言教程:C++语言78个常见编译错误及分析</a></h2><p>C语言常见编译错误及分析大全 fatal error C1003: error count exceeds number;stopping compilation</p><p>中文对照:(编译错误)错误太多,停止编译 分析:修改之前的错误,再次编译 fatal error C1004: unexpected end of file found</p><p>中文对照:(编译错误)文件未结束</p><p>分析:一个函数或者一个结构定义缺少“}”、或者在一个函数调用或表达式中括号没有配对出现、或者注释符“/*„*/”不完整等 fatal error C1083: Cannot open include file: 'xxx': No such file or directory</p><p>中文对照:(编译错误)无法打开头文件xxx:没有这个文件或路径 分析:头文件不存在、或者头文件拼写错误、或者文件为只读 fatal error C1903: unable to recover from previous error(s);stopping compilation</p><p>中文对照:(编译错误)无法从之前的错误中恢复,停止编译 分析:引起错误的原因很多,建议先修改之前的错误 error C2001: newline in constant</p><p>中文对照:(编译错误)常量中创建新行 分析:字符串常量多行书写 error C2006: #include expected a filename, found 'identifier'</p><p>中文对照:(编译错误)#include命令中需要文件名</p><p>分析:一般是头文件未用一对双引号或尖括号括起来,例如“#include stdio.h” error C2007: #define syntax</p><p>中文对照:(编译错误)#define语法错误</p><p>分析:例如“#define”后缺少宏名,例如“#define” error C2008: 'xxx' : unexpected in macro definition</p><p>中文对照:(编译错误)宏定义时出现了意外的xxx</p><p>分析:宏定义时宏名与替换串之间应有空格,例如“#define TRUE“1”” error C2009: reuse of macro formal 'identifier'</p><p>中文对照:(编译错误)带参宏的形式参数重复使用</p><p>分析:宏定义如有参数不能重名,例如“#define s(a,a)(a*a)”中参数a重复 error C2010: 'character' : unexpected in macro formal parameter list</p><p>中文对照:(编译错误)带参宏的形式参数表中出现未知字符 分析:例如“#define s(r|)r*r”中参数多了一个字符‘|’ error C2014: preprocessor command must start as first nonwhite space</p><p>中文对照:(编译错误)预处理命令前面只允许空格</p><p>分析:每一条预处理命令都应独占一行,不应出现其他非空格字符 error C2015: too many characters in constant 中文对照:(编译错误)常量中包含多个字符 分析:字符型常量的单引号中只能有一个字符,或是以“”开始的一个转义字符,例如“char error = 'error';” error C2017: illegal escape sequence 中文对照:(编译错误)转义字符非法</p><p>分析:一般是转义字符位于 ' ' 或 “ ” 之外,例如“char error = ' 'n;” error C2018: unknown character '0xhh' 中文对照:(编译错误)未知的字符0xhh 分析:一般是输入了中文标点符号,例如“char error = 'E';”中“;”为中文标点符号 error C2019: expected preprocessor directive, found 'character' 中文对照:(编译错误)期待预处理命令,但有无效字符</p><p>分析:一般是预处理命令的#号后误输入其他无效字符,例如“#!define TRUE 1” error C2021: expected exponent value, not 'character' 中文对照:(编译错误)期待指数值,不能是字符</p><p>分析:一般是浮点数的指数表示形式有误,例如123.456E error C2039: 'identifier1' : is not a member of 'identifier2' 中文对照:(编译错误)标识符1不是标识符2的成员 分析:程序错误地调用或引用结构体、共用体、类的成员 error C2041: illegal digit 'x' for base 'n' 中文对照:(编译错误)对于n进制来说数字x非法</p><p>分析:一般是八进制或十六进制数表示错误,例如“int i = 081;”语句中数字‘8’不是八进制的基数 error C2048: more than one default 中文对照:(编译错误)default语句多于一个</p><p>分析:switch语句中只能有一个default,删去多余的default</p><p>error C2050: switch expression not integral 中文对照:(编译错误)switch表达式不是整型的</p><p>分析:switch表达式必须是整型(或字符型),例如“switch(“a”)”中表达式为字符串,这是非法的 error C2051: case expression not constant 中文对照:(编译错误)case表达式不是常量</p><p>分析:case表达式应为常量表达式,例如“case “a””中““a””为字符串,这是非法的 error C2052: 'type' : illegal type for case expression 中文对照:(编译错误)case表达式类型非法</p><p>分析:case表达式必须是一个整型常量(包括字符型)error C2057: expected constant expression 中文对照:(编译错误)期待常量表达式</p><p>分析:一般是定义数组时数组长度为变量,例如“int n=10;int a[n];”中n为变量,这是非法的 error C2058: constant expression is not integral 中文对照:(编译错误)常量表达式不是整数 分析:一般是定义数组时数组长度不是整型常量 error C2059: syntax error : 'xxx' 中文对照:(编译错误)‘xxx’语法错误</p><p>分析:引起错误的原因很多,可能多加或少加了符号xxx error C2064: term does not evaluate to a function 中文对照:(编译错误)无法识别函数语言</p><p>分析:</p><p>1、函数参数有误,表达式可能不正确,例如“sqrt(s(s-a)(s-b)(s-c));”中表达式不正确</p><p>2、变量与函数重名或该标识符不是函数,例如“int i,j;j=i();”中i不是函数 error C2065: 'xxx' : undeclared identifier 中文对照:(编译错误)未定义的标识符xxx 分析:</p><p>1、如果xxx为cout、cin、scanf、printf、sqrt等,则程序中包含头文件有误</p><p>2、未定义变量、数组、函数原型等,注意拼写错误或区分大小写。error C2078: too many initializers 中文对照:(编译错误)初始值过多</p><p>分析:一般是数组初始化时初始值的个数大于数组长度,例如“int b[2]={1,2,3};” error C2082: redefinition of formal parameter 'xxx' 中文对照:(编译错误)重复定义形式参数xxx 分析:函数首部中的形式参数不能在函数体中再次被定义 error C2084: function 'xxx' already has a body 中文对照:(编译错误)已定义函数xxx 分析:在VC++早期版本中函数不能重名,6.0版本中支持函数的重载,函数名可以相同但参数不一样</p><p>error C2086: 'xxx' : redefinition 中文对照:(编译错误)标识符xxx重定义 分析:变量名、数组名重名</p><p>error C2087: '<Unknown>' : missing subscript 中文对照:(编译错误)下标未知</p><p>分析:一般是定义二维数组时未指定第二维的长度,例如“int a[3][];”</p><p>error C2100: illegal indirection</p><p>中文对照:(编译错误)非法的间接访问运算符“*” 分析:对非指针变量使用“*”运算</p><p>error C2105: 'operator' needs l-value 中文对照:(编译错误)操作符需要左值</p><p>分析:例如“(a+b)++;”语句,“++”运算符无效</p><p>error C2106: 'operator': left operand must be l-value 中文对照:(编译错误)操作符的左操作数必须是左值 分析:</p><p>例如“a+b=1;”语句,“=”运算符左值必须为变量,不能是表达式</p><p>error C2110: cannot add two pointers 中文对照:(编译错误)两个指针量不能相加</p><p>分析:例如“int *pa,*pb,*a;a = pa + pb;”中两个指针变量不能进行“+”运算</p><p>error C2117: 'xxx' : array bounds overflow 中文对照:(编译错误)数组xxx边界溢出</p><p>分析:一般是字符数组初始化时字符串长度大于字符数组长度,例如“char str[4] = “abcd”;”</p><p>error C2118: negative subscript or subscript is too large 中文对照:(编译错误)下标为负或下标太大</p><p>分析:一般是定义数组或引用数组元素时下标不正确 error C2124: divide or mod by zero 中文对照:(编译错误)被零除或对0求余 分析:例如“int i = 1 / 0;”除数为0</p><p>error C2133: 'xxx' : unknown size 中文对照:(编译错误)数组xxx长度未知</p><p>分析:一般是定义数组时未初始化也未指定数组长度,例如“int a[];”</p><p>error C2137: empty character constant。中文对照:(编译错误)字符型常量为空 分析:一对单引号“''”中不能没有任何字符</p><p>error C2143: syntax error : missing 'token1' before 'token2'</p><p>error C2146: syntax 4error : missing 'token1' before identifier 'identifier' 中文对照:(编译错误)在标识符或语言符号2前漏写语言符号1 分析:可能缺少“{”、“)”或“;”等语言符号</p><p>error C2144: syntax error : missing ')' before type 'xxx' 中文对照:(编译错误)在xxx类型前缺少‘)’ 分析:一般是函数调用时定义了实参的类型</p><p>error C2181: illegal else without matching if 中文对照:(编译错误)非法的没有与if相匹配的else 分析:可能多加了“;”或复合语句没有使用“{}”</p><p>error C2196: case value '0' already used 中文对照:(编译错误)case值0已使用 分析:case后常量表达式的值不能重复出现</p><p>error C2296: '%' : illegal, left operand has type 'float' 47 error C2297: '%' : illegal, right operand has type 'float' 中文对照:(编译错误)%运算的左(右)操作数类型为float,这是非法的</p><p>分析:求余运算的对象必须均为int类型,应正确定义变量类型或使用强制类型转换</p><p>error C2371: 'xxx' : redefinition;different basic types 中文对照:(编译错误)标识符xxx重定义;基类型不同 分析:定义变量、数组等时重名</p><p>error C2440: '=' : cannot convert from 'char [2]' to 'char' 中文对照:(编译错误)赋值运算,无法从字符数组转换为字符</p><p>分析:不能用字符串或字符数组对字符型数据赋值,更一般的情况,类型无法转换</p><p>error C2447: missing function header(old-style formal list?)51 error C2448: '<Unknown>' : function-style initializer appears to be a function definition 中文对照:(编译错误)缺少函数标题(是否是老式的形式表?)分析:函数定义不正确,函数首部的“()”后多了分号或者采用了老式的C语言的形参表</p><p>error C2450: switch expression of type 'xxx' is illegal 中文对照:(编译错误)switch表达式为非法的xxx类型</p><p>分析:switch表达式类型应为int或char</p><p>error C2466: cannot allocate an array of constant size 0 中文对照:(编译错误)不能分配长度为0的数组 分析:一般是定义数组时数组长度为0</p><p>error C2601: 'xxx' : local function definitions are illegal 中文对照:(编译错误)函数xxx定义非法</p><p>分析:一般是在一个函数的函数体中定义另一个函数</p><p>error C2632: 'type1' followed by 'type2' is illegal 中文对照:(编译错误)类型1后紧接着类型2,这是非法的 分析:例如“int float i;”语句</p><p>error C2660: 'xxx' : function does not take n parameters 中文对照:(编译错误)函数xxx不能带n个参数 分析:调用函数时实参个数不对,例如“sin(x,y);”</p><p>error C2664: 'xxx' : cannot convert parameter n from 'type1' to 'type2' 中文对照:(编译错误)函数xxx不能将第n个参数从类型1转换为类型2 分析:一般是函数调用时实参与形参类型不一致</p><p>error C2676: binary '<<' : 'class istream_withassign' does not define this operator or a conversion to a type acceptable to the predefined operator error C2676: binary '>>' : 'class ostream_withassign' does not define this operator or a conversion to a type acceptable to the predefined operator 分析:“>>”、“<<”运算符使用错误,例如“cin<<x;cout>>y;”</p><p>error C4716: 'xxx' : must return a value 中文对照:(编译错误)函数xxx必须返回一个值</p><p>分析:仅当函数类型为void时,才能使用没有返回值的返回命令。</p><p>fatal error LNK1104: cannot open file “Debug/Cpp1.exe” 中文对照:(链接错误)无法打开文件Debug/Cpp1.exe 分析:重新编译链接</p><p>fatal error LNK1168: cannot open Debug/Cpp1.exe for writing 中文对照:(链接错误)不能打开Debug/Cpp1.exe文件,以改写内容。分析:一般是Cpp1.exe还在运行,未关闭</p><p>fatal error LNK1169: one or more multiply defined symbols found 中文对照:(链接错误)出现一个或更多的多重定义符号。分析:一般与error LNK2005一同出现</p><p>error LNK2001: unresolved external symbol _main 中文对照:(链接错误)未处理的外部标识main 分析:一般是main拼写错误,例如“void mian()”</p><p>error LNK2005: _main already defined in Cpp1.obj 中文对照:(链接错误)main函数已经在Cpp1.obj文件中定义 分析:未关闭上一程序的工作空间,导致出现多个main函数</p><p>warning C4003: not enough actual parameters for macro 'xxx' 中文对照:(编译警告)宏xxx没有足够的实参 分析:一般是带参宏展开时未传入参数</p><p>warning C4067: unexpected tokens following preprocessor directive期待新行 分析:“#include<iostream.h>;”命令后的“;”为多余的字符</p><p>warning C4091: '' : ignored on left of 'type' when no variable is declared 中文对照:(编译警告)当没有声明变量时忽略类型说明 分析:语句“int;”未定义任何变量,不影响程序执行</p><p>warning C4101: 'xxx' : unreferenced local variable 中文对照:(编译警告)变量xxx定义了但未使用 分析:可去掉该变量的定义,不影响程序执行</p><p>warning C4244: '=' : conversion from 'type1' to 'type2', possible loss of data 中文对照:(编译警告)赋值运算,从数据类型1转换为数据类型2,可能丢失数据</p><p>分析:需正确定义变量类型,数据类型1为float或double、数据类型2为int时,结果有可能不正确,数据类型1为double、数据类型2为float时,不影响程序结果,可忽略该警告</p><p>warning C4305: 'initializing' : truncation from 'const double' to 'float' 中文对照:(编译警告)初始化,截取双精度常量为float类型 分析:出现在对float类型变量赋值时,一般不影响最终结果</p><p>warning C4390: ';' : empty controlled statement found;is this the intent? 中文对照:(编译警告)‘;’控制语句为空语句,是程序的意图吗?</p><p>分析:if语句的分支或循环控制语句的循环体为空语句,一般是多加了“;”</p><p>warning C4508: 'xxx' : function should return a value;'void' return type assumed 中文对照:(编译警告)函数xxx应有返回值,假定返回类型为void 分析:一般是未定义main函数的类型为void,不影响程序执行 c语言的错误对照表———— 在遇到错误时可以对照查看</p><p>warning C4552: 'operator' : operator has no effect;expected operator with side-effect 中文对照:(编译警告)运算符无效果;期待副作用的操作符 分析:例如“i+j;”语句,“+”运算无意义</p><p>warning C4553: '==' : operator has no effect;did you intend '='? 中文对照:(编译警告)“==”运算符无效;是否为“=”? 分析:例如 “i==j;” 语句,“==”运算无意义</p><p>warning C4700: local variable 'xxx' used without having been initialized 中文对照:(编译警告)变量xxx在使用前未初始化</p><p>分析:变量未赋值,结果有可能不正确,如果变量通过scanf函数赋值,则有可能漏写“&”运算符,或变量通过cin赋值,语句有误</p><p>warning C4715: 'xxx' : not all control paths return a value 中文对照:(编译警告)函数xxx不是所有的控制路径都有返回值</p><p>分析:一般是在函数的if语句中包含return语句,当if语句的条件不成立时没有返回值</p><p>warning C4723: potential divide by 0 中文对照:(编译警告)有可能被0除 分析:表达式值为0时不能作为除数</p><p>warning C4804: '<' : unsafe use of type 'bool' in operation 中文对照:(编译警告)‘<’:不安全的布尔类型的使用 分析:例如关系表达式“0<=x<10”有可能引起逻辑错误</p> </div> </article> <a href="#" tpid="25" target="_self" class="download_card jhcdown" rel="nofollow"> <img class="download_card_pic" src="//static.xiexiebang.com/skin/default/images/icon_word.png" alt="下载黑马程序员Python教程python re 模块及正则表达式调用认识-2word格式文档"> <div class="download_card_msg"> <div class="download_card_title" style="text-decoration:none;">下载黑马程序员Python教程python re 模块及正则表达式调用认识-2.doc</div> <div class="download_card_tip">将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。</div> </div> <div class="download_card_btn"> <img src="//static.xiexiebang.com/skin/default/images/icon_download.png"> <div class="downlod_btn_right"> <div>点此处下载文档</div> <p>文档为doc格式</p> </div> </div> </a> <div class="post-tags mt20 mb30"><span>相关专题</span> <a href="/tag/hmcxypythonjc/" target="_blank">黑马程序员python教程</a> <a href="/tag/hmcxypythonbj/" target="_blank">黑马程序员python笔记</a> <a href="/tag/pythonhmcxy/" target="_blank">python黑马程序员</a> </div> <div class="single-info mb40"><span class="hidden-xs ">网址:https://www.xiexiebang.com/a11/2019051415/ad193071c1ebddcb.html</span><br>声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。 </div> <div class="single-xg mb40"> <div class="con-title"> <h3><a name="6"></a>相关范文推荐</h3> </div> <div class="sticky mb20"> <ul></ul> </div> </div> </div> </div> <div class="right-content-box wow fadeInRight delay300 right-content"> <script src="/e/member/login/loginjs.php"></script> <div class="sidebar"> <div id="sidebar" role="complementary"> <aside id="recent-posts-3" class="widget widget_recent_entries"> <h3 class="widget-title">猜你喜欢</h3> <ul class="new-list"></ul> </aside> </div> </div> </div> </div> </div> </section> <section id="footer" class="p30"> <div class="container"> <div class="footer-top clearfix"> <div class="copyr"> <div class="footer-menu clearfix mb10"> <ul class="footer-menu-con"> <li><a href="/a1/">1号文库</a></li><li><a href="/a2/">2号文库</a></li><li><a href="/a3/">3号文库</a></li><li><a href="/a4/">4号文库</a></li><li><a href="/a5/">5号文库</a></li><li><a href="/a6/">6号文库</a></li><li><a href="/a7/">7号文库</a></li><li><a href="/a8/">8号文库</a></li><li><a href="/a9/">9号文库</a></li><li><a href="/a10/">10号文库</a></li><li><a href="/a11/">11号文库</a></li><li><a href="/a12/">12号文库</a></li><li><a href="/a13/">13号文库</a></li><li><a href="/a14/">14号文库</a></li><li><a href="/a15/">15号文库</a></li> </ul> </div> <p>Copyright © 2018 <a href="/">写写帮文库</a> All Rights Reserved   <a target="_blank" href="http://www.beian.miit.gov.cn" rel="nofollow"> 云ICP备11051236号</a>   <script type="text/javascript" src="//static.xiexiebang.com/skin/default/js/tj.js"></script></p> </div> </div> </div> </section> <script type='text/javascript' src='//static.xiexiebang.com/skin/default/js/superfish.js'></script> <script type='text/javascript' src='//static.xiexiebang.com/skin/default/js/jquery.slicknav.js'></script> <script type='text/javascript' src='//static.xiexiebang.com/skin/default/js/xs.js'></script> <div class="right_bar hidden-xs "> <ul> <li class="rtbar_li1" style="left: 0px;"><a><img src="//static.xiexiebang.com/skin/default/images/rtbar_liicon3.png"><span id="call_tel"></span></a></li> <li class="rtbar_li2"> <a href="javascript:void(0);"> <img src="//static.xiexiebang.com/skin/default/images/rtbar_liicon4.png"> </a> <div class="rtbar_shwx" style="display: none;"> <img width="188" height="188" alt="微信二维码" src="//static.xiexiebang.com/skin/default/images/wechat.png"> </div> </li> <li class="rtbar_li3" style="left: 0px;"> <a href="tencent://message/?uin=8524560123&Menu=yes"> <img src="//static.xiexiebang.com/skin/default/images/rtbar_liicon2.png"> 点击咨询 </a> </li> <li class="rtbar_li5"><a href="#1">第一篇</a></li> <li class="rtbar_li6"><a href="#2">第二篇</a></li> <li class="rtbar_li7"><a href="#3">第三篇</a></li> <li class="rtbar_li8"><a href="#4">第四篇</a></li> <li class="rtbar_li9"><a href="#5">第五篇</a></li> <li class="rtbar_li10"><a href="#6">更 多</a></li> <li class="rtbar_li4 gotop"> <a href=""><img src="//static.xiexiebang.com/skin/default/images/rtbar_liicon1.png"> </a></li> </ul> </div> </body> </html>