算术最基本的操作符,是小学数学的+ - * / ,对于整数,还可以用+=,*=的操作符,对自身的值进行改变(对象引用)。以下是小编为你整理的python新手入门做什么好
对于整数的加减乘除,但需要注意的是,整数相除的结果是小数
PS:在一些其他语言,比如c语言,java,两个整数相除,如果产生小数,直接把小数给忽略掉,而Python刚刚相反,比如1/3,在其他语言的结果是0,在Python则是0.333333333......
如果需要把整数相除的商作为int类型整数结果,需要转化,int(小数值)
PS:直接把小数忽略掉,不会进行四舍五入的运算
列表的相加
2个列表相加之后,元素进行合并
需要注意的是,不能直接用运算符进行减法,乘法,除法运算
str类型相加(连接符)
数值相加的数学运算,字符串相加是连接
比如:'abc'+'def',结果是'abcdef'
需要注意的是,字符串只能用+号连接,不能用乘除减符号
+=,-=,*=,/=
需要注意的是,这种赋值不是改变原本的数据,而且进行运算之后产生一个新的数据,然后a重新指向新数据,原来的数据如果没有被任何标识符引用,那么会进入等待垃圾回收器清理
另外,这类操作符的左边是一个集合的时候,右边也需要是集合
有一个需要注意的是
字符串集合与字符串相加
比如,['abc']与'def'相加,不能用a = a + b,要用a += b
解析:直接相加,相当于用列表与字符串相加,如果用+=,会默认把后面的字符串转成列表
python的注释
注释是什么?
我们写程序的时候,是否要标明程序的作用。例如函数、对象、方法的作用、源代码的作者等。
也就是说python解释器不解释的部分,用来我们开发时可以一目了然的功能标明,就是注释。
怎么注释呢?
这里分单行注释和多行注释。
什么是单行注释?
也就是说单行注释,标识符为#
什么是多行注释?
多行注释一般用于作者、版本标明。标识符为3个'''或者"""
当然你也可以用单行注释来实现多行注释。
例如:
#!/usr/bin/python
# 这是一个python程序
# 作者 binn louis zeng
# 版本:1.0
# 功能:1.xxxxxx
# 2.xxxxx
import sys
......
但是多行的情况是这样的:
#!/usr/bin/python
'''
这是一个python程序
作者 binn louis zeng
版本:1.0
功能:1.xxxxxx
2.xxxxx
'''
import sys
......
或者把'''替换成"""
跟着我做一遍你就完全能理解啦。
首先touch test.py
新建一个py文件。
vim打开它。
然后按a插入。
输入以下代码:
#!/usr/bin/python
#print 'test'
print 'test'
先来看看我们的代码
#!/usr/bin/python
这个是声明解释器路径
#print 'test'
这个是注释,不起作用的注释
print 'test'
这是一个打印test这个字符串的操作。
如果#注释生效的话,那么只会打印一个test对不对?
也就是只执行print 'test'这一条语句
我们:wq保存退出,然后python test.py看看结果?
二进制的实用方法
0b是二进制,比如a = 0b1001100110100110
注意:无论几进制,打印出来的都是十进制
0o表示八进制
注意:前面是数字0,后面是小写字母x
0x表示十六进制
注意:前面的是数字0,后面的是小写字母x,数值用大写字母,A~E
/与//
a/b,带小数的结果
a//b,忽略小数的结果
注意:带不带小数,它的结果都是小数
%取模(余数)
比如,10/3,正常结果的3.333333
如果需要小学算术那样,10/3,求余数
可以用10 % 3
divmod(x,y)
如果需要同时求商与余数,可以用这个函数,这个函数是返回一个元组的
abs(x)
获取某个数的绝对值,这个计算比较常用
nutch
到Nutch.apache.org下载最新版本的Nutch
到code.google.com/p/ik-analyzer/下载IK分词器
修改部分Nutch源代码,以使其适应中文搜索。(其实Nutch自带有语言检测机制,不过不太靠谱,一般都是强制采用中文分词)中文分词是以插件形式加载的。
实现一个继承了NutchAnalyzer类的中文分词类,覆盖其中的tokenStream方法。
保存在src/plugin/analyze-zh上(名字自己定),并填写plugin.xml文件。
修改NutchAnalyss的parse方法,代码大致如下:
Query query = new Query(conf);
StringReader input = new StringReader(queryString); org.apache.lucene.analysis.Tokenizer tokenizer = new org.wltea.analyzer.lucene.IKTokenizer(input,true);
terator its = tokenizer.getAttributeImplsIterator();
while(tokenizer.incrementToken()) { TermAttribute t = tokenizer.getAttribute(TermAttribute.class); String[] array = { t.term() }; //OffsetAttribute oa = tokenizer.getAttribute(OffsetAttribute.class); query.addRequiredPhrase(array); } return query;
...