首页 > 代码库 > pyhton (一)基础
pyhton (一)基础
我看的是廖雪峰写的python2.7教程,我记录的都是关键点,或者容易忘记的地方,还请看原版教程,
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
人生苦短,我用Python。
这话可不是说说而已,在不涉及到性能要求或者平台要求时,Python无疑是最好的编程语言,听说PHP是世界上最好的语言,没学过,不太清楚。机器学习在不在ARM架构上运行时,通常都是使用Python。
通常ubuntu都是自带Python2.7的,就不介绍如何安装了。
python hello.py
就可以执行了,如果有权限问题,直接sudo chmod a+x hello.py
name = raw_input(‘please enter your name: ‘)
print ‘hello,‘, name
print ‘The quick brown fox‘, ‘jumps over‘, ‘the lazy dog‘
结果为
The quick brown fox jumps over the lazy dog
我的天哪,这个破博客的字体要把我给搞疯了,谁特么设计的这个编辑界面,赶紧把这个产品开了吧,傻子一样,
name = raw_input() print ‘hello,‘, name
这样就可以在命令行进行输入字符串了。
如果字符串内部有很多换行,用\n
写在一行里不好阅读,为了简化,Python允许用‘‘‘...‘‘‘
的格式表示多行内容,可以自己试试:
>>> print ‘‘‘line1 ... line2 ... line3‘‘‘ line1 line2 line3
可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,
python对于字符串的处理也和其他语言一样是非常令人头疼的,以前汉化游戏时,涉及到偏移量就更是头大,
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python # -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
>>> classmates.append(‘Adam‘) >>> classmates [‘Michael‘, ‘Bob‘, ‘Tracy‘, ‘Adam‘]
>>> classmates.insert(1, ‘Jack‘) >>> classmates [‘Michael‘, ‘Jack‘, ‘Bob‘, ‘Tracy‘, ‘Adam‘]
要删除list末尾的元素,用pop()
方法:
>>> classmates.pop() ‘Adam‘ >>> classmates [‘Michael‘, ‘Jack‘, ‘Bob‘, ‘Tracy‘]
要删除指定位置的元素,用pop(i)
方法,其中i
是索引位置:
>>> classmates.pop(1) ‘Jack‘ >>> classmates [‘Michael‘, ‘Bob‘, ‘Tracy‘]
list里面的元素的数据类型也可以不同,比如:
>>> s = [‘python‘, ‘java‘, [‘asp‘, ‘php‘], ‘scheme‘] >>> len(s) 4
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字。
elif是else if 的缩写,注意缩进。
age = 3 if age >= 18: print ‘adult‘ elif age >= 6: print ‘teenager‘ else: print ‘kid‘
dict
names = [‘Michael‘, ‘Bob‘, ‘Tracy‘] scores = [95, 75, 85]
>>> d = {‘Michael‘: 95, ‘Bob‘: 75, ‘Tracy‘: 85} >>> d[‘Michael‘] 95
dict的查找速度更快,这个在自然语言处理中有应用,研究这方面的可以深入了解。
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:
判断key是否存在
>>> ‘Thomas‘ in d False
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
set需要list作为输入。
>>> s = set([1, 2, 3]) >>> s set([1, 2, 3])
方法add 、 remove
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 set([2, 3]) >>> s1 | s2 set([1, 2, 3, 4])
abs取绝对值,cmp比较两个数的大小
>>> int(‘123‘) 123 >>> int(12.34) 12 >>> float(‘12.34‘) 12.34 >>> str(1.23) ‘1.23‘ >>> unicode(100) u‘100‘ >>> bool(1) True >>> bool(‘‘) False
使用while 循环判断list内的数值为奇数还是偶数
#!usr/bin/python #coding:utf-8 numbers = [12,5,8,7,3,10] even = [] odd = [] while len(numbers) > 0: number = numbers.pop() if(number%2 == 0): even.append(number) else: odd.append(number) print even print odd
for循环遍历
#!/usr/bin/python # -*- coding: UTF-8 -*- for letter in ‘Python‘: # 第一个实例 print ‘当前字母 :‘, letter fruits = [‘banana‘, ‘apple‘, ‘mango‘] for fruit in fruits: # 第二个实例 print ‘当前水果 :‘, fruit print "Good bye!"
索引遍历
#!/usr/bin/python # -*- coding: UTF-8 -*- fruits = [‘banana‘, ‘apple‘, ‘mango‘] for index in range(len(fruits)): print ‘当前水果 :‘, fruits[index] print "Good bye!"
判断是否为质数
#!usr/bin/python #coding:utf-8 for num in range(10,20): for i in range(2,num): if num%i ==0: j = num/i print ‘%d equal %d * %d‘ % (num,i,j) break else: print num,‘is a prime number‘
break跳出循环
#!usr/bin/python #coding:utf-8 for letter in ‘python‘: if letter == ‘h‘: break print ‘char:‘,letter var = 10 while var > 0: print ‘now:‘,var var = var -1 if var == 5: break print "Good bye"
pyhton (一)基础