赞
踩
今天的笔记记录昨天学习python面向过程编程的内容,分为:
一些零碎的小知识
ps:python2和python3有比较大的区别,我用的版本是2.7,之所以用这个版本是因为2的支持目前比3略好(谁让人家出的早)而且速度快些,现在2和3版本是同时跟进更新的,所以不用怕2被淘汰而不去学
(1)变量的声明
python和shell类似属于’脚本’语言,声明变量不需要像C一样
int a = 0 (C语言是这样但是python并不是)
而是直接
a = 0
或者
a = 'string'
b = 2.1
c = True
等。
(2)变量类型
上面直接列举最基本的类型例如int,float,string,bool,这四个都是C++里有的,还有列表(list)、元祖(tuple)、集合(sets)、字典(dictionaries)。
int、float、bool就不说了,先说说string,在python中string是用单引号、双引号甚至三引号括起来的字符串对象(在python的世界里‘万物皆对象’):
s = 'string'
a = "string"
b = "I'm a string"
c = 'I\'m a string,too'
d = u'''在这里你想
怎么输出
就会怎么
输 出
'''
说明一下:b中的I’m里面有单引号但是string是用双引号引起来的所以没问题,c中的I’m的单引号是用转义字符引起来的也就是 \’ 这样代表这个单引号原样输出,d三引号前面的u代表Unicode编码,这样输出中文不会乱码。
好的,现在掌握了四种基本类型的声明方法,现在我们先动手使用,在编译器或者终端中先声明
a = 1
如果我们要输出a
print a
如果我们想像C语言一样printf一个带变量的字符串
print u'我刚才声明了一个整形变量 %d ,第二个 %d ,第三个 %d' %(a,a,a)
python和C一样占位符有%d %f %s等组成,\n,\t,\a等也是一样能用的
输出字符串的时候也可以用下标,但是python提供新玩法:
s = '123456'
print s #输出整个字符串
print s[:4] #输出1234,也就是说输出前4个字符,从0开始计s[0]s[1]s[2]s[3]
print s[:-2]#输出还是1234,-2代表输出到倒数第二个字符之前
print s[2:5]#输出345 原理同上
获得变量长度
len(s) #6
字符串拼接后
s += '789'
print len(s) #9
输出大概会了,输入也简单
#input
a = raw_input(u'你想说点什么')
i = int(raw_input(u'输入一个数字我接着'))
print u'你刚才说"%s"和一个数字%d' %(a,i)
#output
你想说点什么hello!
输入一个数字我接着123
你刚才说"hello!"和一个数字123
raw_input就是输入函数,前面可以强制转换得到的默认输入字符串的类型
下面介绍列表、元祖、字典、集合。
列表是用’[]’括起来的若干个数据类型不限的元素组成的数据结构
a = ['string',1,1.2,True]
b = ['hello',a,'world']
输出方式同上
其中b是二维列表,可以这样输出某一元素
print b[1][2] #输出1.2
print a*2 #输出['string', 1, 1.2, True, 'string', 1, 1.2, True] 两遍a
元祖
元祖和列表不同的就是前者的内容不能更改,声明方式有两种
a = 1,1.2,'hello'
b = (3,4,True)
其它没什么好说的,都大同小异
集合
集合set里面没有重复的内容,也是很早就接触过的数据结构了,python的操作里直接就有两个集合取交并补差甚至对称差的方法,特别方便,点个赞
a = set( [1,2,3,4,5,6] )
b = set( [5,6,7,8,9,0] )
print a|b #并集set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print a&b #交集set([5, 6])
print a^b #对称差set([0, 1, 2, 3, 4, 7, 8, 9])
print a-b #差集set([1, 2, 3, 4])
print b-a #差集set([0, 8, 9, 7])
字典
其实就是哈希表
chengji = { 'Chinese':90 , 'English':95 , 'Math':100}#用花括号定义,每一项键值对之间用冒号
print chengji.keys()#输出所有键值
print chengji['Chinese']#输出 90
print chengji.keys()[0]#输出 Math
del chengji['English'] #del删除某一项
len(chengji) #此时长度为2
print chengji #{'Math': 100, 'Chinese': 90}
和其它语言大同小异,for、while循环,if else判断,break,continue等。
if判断
a = int(raw_input('请输入一个数字:'))
if a < 0: #if ... elif ... else语句的用法
print '%d是负数'%(a)
elif a == 0:
print '%d为零'%(a)
elif a > 0:
print '%d是正数'%(a)
else:
print '不是数'
for循环
for x in range(1,10,2): #for
print x
print
for x in range(0,10,2):
print x
range是循环设置,上面是从1到9,步长为2,也就是
//C/C++/java
for(int x = 1 ; x < 10 ;x +=2)
双层for循环
k = 1
for i in range(10):
for j in range(10):
if i*j > 56:
print 'i = %d,j = %d,i*j = %d'%(i,j,i*j)
k = k + 1
if(k > 3):
break
print k
while循环
ai = range(10)
i = 0
while i < 10:
print ai[i]
i += 1
以上有点基础的都不用说了。
下面说函数的定义方法,关键字def
def swap(list): #def 函数的用法
t = list[0]
list[0] = list[1]
list[1] = t
l = [1,2]
swap(l)
print l
def fib(n): #斐波那契数列
a,b = 0,1
while a < n:
print a,
a,b = b,a+b
fib(1000) #输出 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
格式就是def 函数名(若干参数): #不要忘记冒号
…函数体…
return … #可能会有返回值
ps:python注释用#号
至此,把上面的demo写写基本就可以用python面向过程编程了,下一篇写python面向对象、异常处理和导入库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。