【大数据技术能力提升_1】python基础

 

程序输入与输出

 

打印字符串

In [1]:
myString = "hello word"
print myString
 
hello word
 

格式化字符串

In [7]:
print "%s is number %d!"%("python",1)
print "{} is number {}!".format("python",2) #python官方推荐
 
python is number 1!
python is number 2!
 

重定向

In [12]:
import sys
print >> sys.stderr,"write to standard error"
logfile = open('./deleteme.txt','wb')
print >> logfile, "write to deleteme.txt"
logfile.close()
 
write to standard error
 

交互式输入

In [15]:
username = raw_input('enter your name:')
 
enter your name:11
In [16]:
username #输出值都是字符串
Out[16]:
'11'
 

print的小tip

 

带都好的print语句输出的元素之间会自动添加一个空格

In [17]:
print 'hello', 'world'
 
hello world
 

print会在最后添加一个换行符

In [19]:
for c in 'hello':
    print c
 
h
e
l
l
o
 

print最后增加一个都好,会抑制换行符

In [20]:
for c in 'hello':
    print c,
 
h e l l o
 

注释

 

普通注释

In [21]:
# one comment
 

文档注释

In [22]:
def func():
    "this is doc string"
 

操作符

In [24]:
print -1*3+2**3+1/3
print 2**3
 
5
8
 

变量和赋值

变量由字母或下划线开头,其他字符可以是数字、字母和下划线

不惜要预先声明

支持增量赋值,但不支持自减自增(i++)

 

数字

python 中int会被自动转换成long,从python2.3开始

In [26]:
print long(10),float(10),bool(10),complex(10)
 
 10 10.0 True (10+0j)
 

字符串

 

单引号、双引号、三引号均可

三引号可以用来包含特殊字符,不需要转义(如换行)

In [29]:
print 'a"b"'
 
a"b"
In [30]:
print "a'b'"
 
a'b'
In [31]:
print '''a
b
c'''
 
a
b
c
 

索引与切片

In [28]:
astring = 'python'
print astring[0]
print astring[1:2]
print astring[:2]
print astring[2:]
print astring[-1]
print astring + 'is cool'
print astring * 2
 
p
y
py
thon
n
pythonis cool
pythonpython
 

字符串编码

避免乱码

输入时解码

输出时编码

unicode.encode() -> bytes; bytes.decode() -> unicode

 

列表与元组

两者索引与切片类似于字符串

列表可修改

元组不可修改

In [33]:
alist = ['jack',3,1.0]
alist
Out[33]:
['jack', 3, 1.0]
In [34]:
atuple = ('rose',1,3.0)
atuple
Out[34]:
('rose', 1, 3.0)
 

字典

工作原理类似哈希表,由键-值(key-value)对组成

In [37]:
adict = {'hose':'baidu','port':80}
print adict
print adict.keys()
for key,value in adict.items():
    print key,value
 
{'hose': 'baidu', 'port': 80}
['hose', 'port']
hose baidu
port 80
 

集合

无重复元素

尽心交、并、差运算

In [38]:
print alist
 
['jack', 3, 1.0]
In [40]:
aset = set(alist)
print aset
bset = set([3.5,'jack'])
print aset.intersection(bset) #交集
print aset.difference(bset) #并集
 
set([1.0, 3, 'jack'])
set(['jack'])
set([1.0, 3])
 

if语句

if,elif,slse

没有switch/case语句

 

for循环

用for遍历字符串或列表或元组

 

enumerate返回元素本身和id

 

for else

In [42]:
for i in range(0,1):
    if i==2:
        print 1
else:
    print 0
 
0
 

列表解析(列表推导)

In [43]:
cube = [x**3 for x in range(4)]
cube
Out[43]:
[0, 1, 8, 27]
In [44]:
cube = [x**3 for x in range(4) if not x%2]
cube
Out[44]:
[0, 8]
 

字典也可以

In [48]:
adict = {'one':1,'two':2}
cube = {key+'_cube':value**3 for key,value in adict.items()}
cube
Out[48]:
{'one_cube': 1, 'two_cube': 8}
 

文件

open,file

访问模式:‘r’ 读,‘w’ 写,‘a’ 添加,‘+’,‘b’ 二进制访问

更好的实践:with open(filename,access_mode)as fp:

 

错误与异常

try except (与java类似)

最好用finally

 

函数

In [49]:
def add(x,y=1):
    return x+y
In [50]:
add(3)
Out[50]:
4
 

定义类

In [70]:
class FooClase(object):
    version = 0.1
    
    def __init__(self, name='no name'):
        self.name = name
        print 'create a class instance for'
    
    def showname(self):
        print 'your name is', self.name
        print 'myname is', self.__class__.__name__
    
    def showver(self):
        print self.version
    
    def addMe(self, x):
        return x + x
 
In [72]:
folo1 = FooClase()
folo1.showname()
 
create a class instance for
your name is no name
myname is FooClase
In [74]:
folo1.showver()
 
0.1
In [75]:
print folo1.addMe(5)
 
10
 

模块

导入模块 import

访问模块的函数或者变量(模块名.函数)

 

实用函数


help(obj) 在线帮助, obj可是任何类型

  callable(obj) 查看一个obj是不是可以像函数一样调用

  repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝

  eval_r(str) 表示合法的python表达式,返回这个表达式

  dir(obj) 查看obj的name space中可见的name

  hasattr(obj,name) 查看一个obj的name space中是否有name

  getattr(obj,name) 得到一个obj的name space中的一个name

  setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object

  delattr(obj,name) 从obj的name space中删除一个name

  vars(obj) 返回一个object的name space。用dictionary表示

  locals() 返回一个局部name space,用dictionary表示

  globals() 返回一个全局name space,用dictionary表示

  type(obj) 查看一个obj的类型

  isinstance(obj,cls) 查看obj是不是cls的instance

  issubclass(subcls,supcls) 查看subcls是不是supcls的子类



 
原文地址:https://www.cnblogs.com/CQ-LQJ/p/11768672.html