大数据学习--Python入门

Python入门
一、基础语法
1、Python中数据类型
整数,浮点数,字符串,布尔值,空值(None)
2、print语句
注意:
1.当我们在Python交互式环境下编写代码时,>>>是Python解释器的提示符,不是代码的一部分。
2.当我们在文本编辑器中编写代码时,千万不要自己添加 >>>。
print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出。print会依次打印每个字符串,遇到逗号“,”会输出一个空格。
3、注释
Python的注释以 # 开头,后面的文字直到行尾都算注释。
多行注释是用三引号''' '''。
4、变量
变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线(_)的组合,且不能用数字开头。
5、字符串
(1)字符串可以用''或者""括起来表示。
注意:
如果字符串包含",我们就可以用' '括起来。
同理,如果字符串包含',我们就可以用""括起来.
如果字符串既包含'又包含",对字符串的某些特殊字符进行“转义”,Python字符串用\进行转义。
如:

#LiMing said ”I’m a gay”!应表示为LiMing said /”I/’m a gay/”!
(2) raw字符串与多行字符串
raw字符串里面的字符不需要转义,r’…’表示单行字符,r’’’…’’’表多行。
6、Unicode
Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。
print u'中文'#多行u'''第一行
第二行'''raw+多行:ur'''Python的Unicode字符串支持"中文",
"日文",
"韩文"等多种语言'''
二、list
(1)list是一种有序的集合,可以随时添加和删除其中的元素。 用[ ] 把list的所有元素都括起来,就是一个list对象。
(2)按索引访问list(类似于数组)。
(3)倒序访问list. 例如:
L = [95.5, 85, 59]print L[-1] #输出59print L[-2] #输出85print L[-3] #输出95.5
(4)添加元素。append()总是把新的元素添加到 list 的尾部。 insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素。
(5)删除元素。pop()方法会返回被删除的元素。
三、tuple
(1)tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。创建tuple和创建list唯一不同之处是用( )替代了[ ]。获取 tuple 元素的方式和 list 是一模一样的。
(2)创建单元素tuple。t = (1,)
四、if语句,for循环,while循环
注意缩进,4个空格。例如:
(1)
if score>60:
print 'passed'#if-elif-elseif age >= 18:
print 'adult'elif age >= 6:
print 'teenager'elif age >= 3:
print 'kid'else:print 'baby'
(2)for循环
L = ['Adam', 'Lisa', 'Bart']for name in L:print name
(3)while循环
N = 10x = 0while x < N:
print x
x = x + 1
(4)使用break跳出循环,continue继续循环。
五、dict集合(key:value)
dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。
例如:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59}
拓展:len()可以计算任何集合的大小。
(1)访问dict.可使用 d[key] 的形式来查找对应的 value。
注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
要避免 KeyError 发生,有两个办法:
一是先判断一下 key 是否存在,用 in 操作符。
二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None
(2)dict的特点
dict的第一个特点是查找速度快,dict的第二个特点就是存储的key-value序对是没有顺序的,dict的第三个特点是作为 key 的元素必须不可变,所以list不能作为key。
(3)遍历dict 例如:
for key in d:... print key
六、set
set 持有一系列元素,这一点和 list 很像,但是set的元素不重复,而且是无序的,这点和 dict 的 key很像。
(1)创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:

s = set(['A', 'B', 'C'])
(2)set的特点
set的内部结构和dict很像,唯一区别是不存储value。
set存储的元素和dict的key类似,必须是不变对象。
(3)遍历set 例如:
s = set(['Adam', 'Lisa', 'Bart'])>>> for name in s:... print name
(4)更新set
添加元素时,用set的add()方法:
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
删除set中的元素时,用set的remove()方法:
如果删除的元素不存在set中,remove()会报错。
六、函数
可以直接从Python的官方网站查看文档:
网页链接
也可以在交互式命令行通过 help(abs) 查看abs函数的帮助信息。
(1)编写函数
定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。return None可以简写为return。Python的函数返回多值其实就是返回一个tuple。
(2)递归函数
例:
汉诺塔问题
函数 move(n, a, b, c) 的定义是将 n 个圆盘从 a 借助 b 移动到 c。
参考代码:
def move(n, a, b, c):
if n ==1:
print a, '-->', c return
move(n-1, a, c, b)
print a, '-->', c
move(n-1, b, a, c)
(3)默认参数
例如: int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数:
int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。
(4)可变参数
可变参数的名字前面有个 号,我们可以传入0个、1个或多个参数给可变参数。Python解释器会把传入的一组参数组装成一个tuple传递给可变参数。
七、对list切片
(1)['Adam', 'Lisa', 'Bart', 'Paul']
L[0:3]或L[:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。所以结果为['Adam', 'Lisa', 'Bart']
L[:]表示从头到尾,L[:]实际上复制出了一个新list。
切片操作还可以指定第三个参数:
L[::2]['Adam', 'Bart']
第三个参数表示每N个取一个,上面的 L[::2] 会每两个元素取出一个来,也就是隔一个取一个。
把list换成tuple,切片操作完全相同,只是切片的结果也变成了tuple。
(2)倒序切片
L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> L[-2:]['Bart', 'Paul']>>> L[:-2]['Adam', 'Lisa']>>>
L[-3:-1]['Lisa', 'Bart']>>> L[-4:-1:2]['Adam', 'Bart']
(3)对字符串切片
字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串。
*
注:

  1. 有序集合:list,tuple,str和unicode;
  2. 无序集合:set
  3. 无序集合并且具有 key-value 对:dict**
    八、迭代
    (1)索引迭代
    L = ['Adam', 'Lisa', 'Bart', 'Paul']>>> for index, name in enumerate(L):... print index, '-',
    name... 0 - Adam1 - Lisa2 - Bart3 - Paul
    enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身。
    (2)迭代dict的value
  4. values() 方法实际上把一个 dict 转换成了包含 value 的list。
  5. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
    (3)迭代dict的key和value
    items() 方法把dict对象转换成了包含tuple的list。
    iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。
    九、列表
    (1)生成列表
    方法一是循环:
    L = []>>> for x in range(1, 11):... L.append(x x)... >>>
    L[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    但是循环太繁琐,而列表生成式则可以用一行语句代替循环生成上面的list:
    [x
    x for x in range(1, 11)][1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    (2)复杂表达式
    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
    在生成的表格中,对于没有及格的同学,请把分数标记为红色。
    提示:红色可以用 实现。
    如果我们用一个函数来替换字符串的格式化代码,可以得到更清晰的代码:
    def generate_tr(name, score):
    return '%s%s' % (name, score)tds = [generate_tr(name, score) for name,
    score in d.iteritems()]
    这样,只需要修改 generate_tr() 函数,必要的时候把score标红。
    d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }def generate_tr(name, score):
    if score < 60:
    return '%s%s' % (name, score)
    return '%s%s' % (name, score)tds = [generate_tr(name, score) for name,
    score in d.iteritems()]print ''print ''
    print '\n'.join(tds)print '
    Name Score
    '
    (3)条件过滤 例如:
    def toUppers(L):
    return [s.upper() for s in L if isinstance(s,str) ] #isinstance(x, str) 可以判断变量 x 是否是字符串;
    print toUppers(['Hello', 'world', 101]) #输出[‘HELLO’,’WORLD’]

你可能感兴趣的:(大数据学习--Python入门)