标签:python程序 切片 用法 需要 知识点 运行 col style and
Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,能简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的很多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。
首先Python 语言是一门脚本语言。Python在设计上坚持了清晰划一的风格,简洁优雅,没有了大括号,没有了分号,使得Python变得非常的整洁。而且它是一门易读、易维护,可移植性非常好,可以在linux、windows、苹果等多种操作系统上运行,并且被大量用户所欢迎的、用途广泛的语言。Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这就是Python给我的有很严格的缩进规则的感觉。
一、基本概念
1. python中数有四种类型:整数、长整数、浮点数和复数。
2. 字符串(字符的序列)
去空格及特殊符号 s.strip().lstrip().rstrip(‘,‘) 复制字符串 #strcpy(sStr1,sStr2) sStr1 = ‘strcpy‘ sStr2 = sStr1 sStr1 = ‘strcpy2‘ print sStr2 连接字符串 #strcat(sStr1,sStr2) sStr1 = ‘strcat‘ sStr2 = ‘append‘ sStr1 += sStr2 print sStr1 查找字符 #strchr(sStr1,sStr2) # < 0 为未找到 sStr1 = ‘strchr‘ sStr2 = ‘s‘ nPos = sStr1.index(sStr2) print nPos 比较字符串 #strcmp(sStr1,sStr2) sStr1 = ‘strchr‘ sStr2 = ‘strch‘ print cmp(sStr1,sStr2) 扫描字符串是否包含指定的字符 #strspn(sStr1,sStr2) sStr1 = ‘12345678‘ sStr2 = ‘456‘ #sStr1 and chars both in sStr1 and sStr2 print len(sStr1 and sStr2) 字符串长度 #strlen(sStr1) sStr1 = ‘strlen‘ print len(sStr1) 将字符串中的大小写转换 #strlwr(sStr1) sStr1 = ‘JCstrlwr‘ sStr1 = sStr1.upper() #sStr1 = sStr1.lower() print sStr1 追加指定长度的字符串 #strncat(sStr1,sStr2,n) sStr1 = ‘12345‘ sStr2 = ‘abcdef‘ n = 3 sStr1 += sStr2[0:n] print sStr1 字符串指定长度比较 #strncmp(sStr1,sStr2,n) sStr1 = ‘12345‘ sStr2 = ‘123bc‘ n = 3 print cmp(sStr1[0:n],sStr2[0:n]) 复制指定长度的字符 #strncpy(sStr1,sStr2,n) sStr1 = ‘‘ sStr2 = ‘12345‘ n = 3 sStr1 = sStr2[0:n] print sStr1 将字符串前n个字符替换为指定的字符 #strnset(sStr1,ch,n) sStr1 = ‘12345‘ ch = ‘r‘ n = 3 sStr1 = n * ch + sStr1[3:] print sStr1 扫描字符串 #strpbrk(sStr1,sStr2) sStr1 = ‘cekjgdklab‘ sStr2 = ‘gka‘ nPos = -1 for c in sStr1: if c in sStr2: nPos = sStr1.index(c) break print nPos 翻转字符串 #strrev(sStr1) sStr1 = ‘abcdefg‘ sStr1 = sStr1[::-1] print sStr1 查找字符串 #strstr(sStr1,sStr2) sStr1 = ‘abcdefg‘ sStr2 = ‘cde‘ print sStr1.find(sStr2) 分割字符串 #strtok(sStr1,sStr2) sStr1 = ‘ab,cde,fgh,ijk‘ sStr2 = ‘,‘ sStr1 = sStr1[sStr1.find(sStr2) + 1:] print sStr1 #或者 s = ‘ab,cde,fgh,ijk‘ print(s.split(‘,‘)) 连接字符串 delimiter = ‘,‘ mylist = [‘Brazil‘, ‘Russia‘, ‘India‘, ‘China‘] print delimiter.join(mylist) PHP 中 addslashes 的实现 def addslashes(s): d = {‘"‘:‘\\"‘, "‘":"\\‘", "\0":"\\\0", "\\":"\\\\"} return ‘‘.join(d.get(c, c) for c in s) s = "John ‘Johny‘ Doe (a.k.a. \"Super Joe\")\\\0" print s print addslashes(s) 只显示字母与数字 def OnlyCharNum(s,oth=‘‘): s2 = s.lower(); fomart = ‘abcdefghijklmnopqrstuvwxyz0123456789‘ for c in s2: if not c in fomart: s = s.replace(c,‘‘); return s; print(OnlyStr("a000 aa-b")) 截取字符串 str = ’0123456789′ print str[0:3] #截取第一位到第三位的字符 print str[:] #截取字符串的全部字符 print str[6:] #截取第七个字符到结尾 print str[:-3] #截取从头开始到倒数第三个字符之前 print str[2] #截取第三个字符 print str[-1] #截取倒数第一个字符 print str[::-1] #创造一个与原字符串顺序相反的字符串 print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符 print str[-3:] #截取倒数第三位到结尾
3. 标识符的命名
4. 对象
python程序中用到的任何“东西”都成为“对象”。
5. 逻辑行和物理行
物理行是我们在编写程序时看到的,逻辑行则是python看到的。
python中分号;标识一个逻辑行的结束,但是实际中一般每个物理行只写一个逻辑行,可以避免使用分号。
多个物理行中可以写一个逻辑行,如下:
1 s = "peter is \ 2 writing this article" 3 上面\的使用被称为‘明确的行连接’, 又如: 4 5 print 6 (peter)
6. 缩进
空白在python是非常重要的,行首的空白是最重要的,又称为缩进。行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而决定语句
分组。这意味着同一层次的语句必须有相同的缩进,每一组这样的语句称为一个块。
注意:不要混合使用空格和制表符来缩进,因为在跨越不同的平台时无法正常工作。
二、运算符与表达式
Python 许多运算符,表达式和java 编程语言的运算符和表达式使用方法相同,所以下面就简单的介绍几个常用的运算符和表达式的使用方法:
x = 5 y = 3 a = 4 b = 2 print(x + y) #结果为 7 print(x - y) #结果为2 print(x * y) #结果为15 print(x / y) #结果为1.6666666666666667 不同的机器浮点数的结果可能不同 print(x // y) #向下去整结果为1 print(x % y) #两数相除取余结果为2 print(x**y) #5的3次幂结果为125 print(a / b) #结果为浮点数2.0 print(a % b)#取余结果为0 print(a // b)#取整结果为2
a = 4 b = 2 c = 2 print(a == b) #False print(a != b) #True print(a <> b) #True print(a > b) #True print(a < b) #False print(a >= b) #True print(c <= b) #True
a = 4 b = 2 c = 0 print(a>b and b>c) #a>b为True继续计算b>c,b>c也为True则结果为True print(a>b and b<c)#a>b为True继续计算c<b,b>c结果为False则结果为False print(a>b or c<b) #a>b为True则不继续计算c<b,结果为True print(not c<b) #c<b为True not True结果为False print(not a<b) #a<b为False not Flase结果为True
3. python 控制台输出 使用print
print (abc) #打印abc并换行 print (“abc%s”%“d”) #打印abcd print(“abc%sef%s”%“d”,“g”) "abc%sef%s" % ("d", "g") #打印abcdefg
三、控制流
1. if 语句
i = 10 n = int(raw_input("enter a number:")) if n == i: print (equal) elif n < i: print (lower) else: print (height)
2. while语句
while True: pass else: pass #else语句可选,当while为False时,else语句被执行。 pass是空语句。
3. for 循环 for..in
for i in range(0, 5): print i else: pass # 打印0到4
注:当for循环结束后执行else语句;
range(a, b)返回一个序列,从a开始到b为止,但不包括b,range默认步长为1,可以指定步长,range(0,10,2);
4. break语句
终止循环语句,如果从for或while中终止,任何对应循环的else将不执行。
5. continue语句
continue语句用来调过当前循环的剩余语句,然后继续下一轮循环。
四、函数
函数通过def定义。def关键字后跟函数的标识符名称,然后跟一对圆括号,括号之内可以包含一些变量名,该行以冒号结尾;接下来是一块语句,即函数体。
def sumOf(a, b): return a + b
1. 函数形参
函数中的参数名称为‘形参’,调用函数时传递的值为‘实参’
2. 局部变量
在函数内定义的变量与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域。
global语句, 为定义在函数外的变量赋值时使用global语句。
def func(): global x
def func(a, b=2, c=3): print "a is %s, b is %s, c is %s" % (a, b, c) func(1) #a is 1, b is 2, c is 3 func(1, 5) #a is 1, b is 5, c is 3 func(1, c = 10) #a is 1, b is 2, c is 10 func(c = 20, a = 30) #a is 30, b is 2, c is 20
print "x is ", x x = 1 x = 3 func() print x #3 #1
3. 默认参数
通过使用默认参数可以使函数的一些参数是‘可选的’。
def say(msg, times = 1): print msg * times say("peter") say("peter", 3)
4. 关键参数
如果某个函数有很多参数,而现在只想指定其中的部分,那么可以通过命名为这些参数赋值(称为‘关键参数’)。
优点:不必担心参数的顺序,使函数变的更加简单;假设其他参数都有默认值,可以只给我们想要的那些参数赋值。
六、数据结构
python有三种内建的数据结构:列表、元组和字典。
1. 列表
list是处理一组有序项目的数据结构,列表是可变的数据结构。列表的项目包含在方括号[]中,eg: [1, 2, 3], 空列表[]。判断列表中是否包含某项可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True;支持索引和切片操作;索引时若超出范围,则IndexError;使用函数len()查看长度;使用del可以删除列表中的项,eg: del l[0] # 如果超出范围,则IndexError
list函数如下:
l = [1, 2, 2] l.append(3) #[1, 2, 2, 3]
l = [1, 2, 2] print l.count(2) # 2
l = [1, 2, 2] l.insert(1, 100) print l #[1, 100, 2, 2] l.insert(100, 1000) print l #[1, 100, 2, 2, 1000]
2. 元组
tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义;支持索引和切片操作;可以使用 in
查看一个元素是否在tuple中。空元组();只含有一个元素的元组("a",) #需要加个逗号
优点:tuple比list速度快;对不需要修改的数据进行‘写保护’,可以是代码更安全
tuple与list可以相互转换,使用内置的函数list()和tuple()。
l = [1, 2, 3] print l # [1, 2, 3] t = tuple(l) print t # (1, 2, 3) l1 = list(t) print l1 #[1, 2, 3]
元组最通常的用法是用在打印语句,如下例:
name = "Peter Zhang" age = 25 print (Name: %s; Age: %d")% (name, age) # Name: Peter Zhang; Age: 25
t = (1, 2, 3, 1, 2, 3) print t.count(2) # 2
index(value, [start, [stop]]) ---返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueError
t = (1, 2, 3, 1, 2, 3) print t.index(3) # 2 try: print t.index(4) except ValueError, ve: print (there is no 4 in tuple) # there is no 4 in tuple
3. 字典
字典由键值对组成,键必须是唯一的;eg: d = {key1:value1, key2:value2};空字典用{}表示;字典中的键值对是没有顺序的,如果想要
一个特定的顺序,那么使用前需要对它们排序;d[key] = value,如果字典中已有key,则为其赋值为value,否则添加新的键值对key/value;使
用del d[key] 可以删除键值对;判断字典中是否有某键,可以使用in 或 not in;
d = {} d["1"] = "one" d["2"] = "two" d["3"] = "three" del d["3"] for key, value in d.items(): print "%s --> %s" % (key, value) #1 --> one #2 --> two
dict函数如下: clear() ---删除字典中所有元素 d1 = {"1":"one", "2":"two"} d1.clear() print d1 # {}
d1 = {"1":"one", "2":"two"} d2 = d1.copy() print d2 #{‘1‘: ‘one‘, ‘2‘: ‘two‘}
copy() ---返回字典的一个副本(浅复制)
dict.fromkeys(seq,val=None) ---创建并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)
l = [1, 2, 3] t = (1, 2, 3) d3 = {}.fromkeys(l) print d3 #{1: None, 2: None, 3: None} d4 = {}.fromkeys(t, "default") print d4 #{1: ‘default‘, 2: ‘default‘, 3: ‘default‘}
get(key,[default]) ---返回字典dict中键key对应值,如果字典中不存在此键,则返回default 的值(default默认值为None)
d5 = {1:"one", 2:"two", 3:"three"} print d5.get(1) #one print d5.get(5) #None print d5.get(5, "test") #test
has_key(key) ---判断字典中是否有键key
d6 = {1:"one", 2:"two", 3:"three"} print d6.has_key(1) #True print d6.has_key(5) #False
4. 序列
序列类型是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素;列表、元组和字符串都是序列;序列的两个主要特点是
索引操作符和切片操作符;索引可以得到特定元素;切片可以得到部分序列;
numbers = ["zero", "one", "two", "three", "four"] print numbers[1] # one print numbers[-1] # four #print numbers[5] # raise IndexError print numbers[:] # [‘zero‘, ‘one‘, ‘two‘, ‘three‘, ‘four‘] print numbers[3:] # [‘three‘, ‘four‘] print numbers[:2] # [‘zero‘, ‘one‘] print numbers[2:4] # [‘two‘, ‘three‘] print numbers[1:-1] # [‘one‘, ‘two‘, ‘three‘]
切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。 如果不指定第一个数,Python就从
序列首开始。如果没有指定第二个数,则Python会停止在序列尾。 注意,返回的序列从开始位置 开始 ,刚好在结束位置之前 结束。即开始位置是
包含在序列切片中的,而结束位置被排斥在切片外。 可以用负数做切片。负数用在从序列尾开始计算的位置。
由于学习Python的时间很短,对于Python的一些语法和使用方法还不是很熟练,对于Python的基础知识点的理解还不是很好,希望可以在以后的日子再 好好学习Python!
标签:python程序 切片 用法 需要 知识点 运行 col style and
原文地址:http://www.cnblogs.com/zhoushasha/p/7670429.html