摘要:
如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数: def fn(*args): print args 可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数: >>> fn()()>>> fn('a')('a',)>>> fn('a', 'b')('a', 'b')>>> fn('a', 'b', 'c')('a', 'b& 阅读全文
摘要:
在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出: fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n 所以,fact(n)可以表示为 n * fact(n-... 阅读全文
摘要:
前面我们看到了tuple一旦创建就不能修改。现在,我们来看一个“可变”的tuple: >>> t = ('a', 'b', ['A', 'B']) 注意到 t 有 3 个元素:'a','b'和一个list:['A', 'B']。list作为一个整体是tuple的第3个元素。list对象可以通过 t[2] 拿到: >>> L = t[2] 然后,我们把list的两个元素改一改: >>> L[0] =... 阅读全文
摘要:
tuple和list一样,可以包含 0 个、1个和任意多个元素。 包含多个元素的 tuple,前面我们已经创建过了。 包含 0 个元素的 tuple,也就是空tuple,直接用 ()表示: >>> t = ()>>> print t() 创建包含1个元素的 tuple 呢?来试试: >>> t = (1)>>> print t1 好像哪里不对!t 不是 tuple ,而是整数1。为什么呢? 因为(... 阅读全文
摘要:
字符串还有一个编码问题。 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122... 阅读全文
摘要:
一、何为pep8? PEP 8官方文档 -- Style Guide for Python Code PEP8中文翻译(转) 二、Pycharm中配置pep8 Pycharm本身是有pep8风格检测的,当你敲得代码中不符合规范时,会有下划波浪线提示。如何让代码修改为符合规范,去掉这些难看的波浪线呢?下面介绍步骤: 2.1安装autopep8 cmd窗口输入:pip install autopep... 阅读全文
摘要:
python文本 maketrans和translate 场景: 过滤字符串的某些字符,我们从例子出发 >>> tb=str.maketrans ('abc','123') >>> 'abcd'.translate (tb) '123d' >>> 'abcd+++a+b+cd'.translate (tb) '123d+++1+2+3d' >>> 1.建立字... 阅读全文
摘要:
python文本 字符串逐字符反转以及逐单词反转 场景: 字符串逐字符反转以及逐单词反转 首先来看字符串逐字符反转,由于python提供了非常有用的切片,所以只需要一句就可以搞定了 >>> a='abc edf degd' >>> a[::-1] 'dged fde cba' >>> 然后我们来看住单词反转 1.同样的我们也可以使用切片 >>> a='abc edf... 阅读全文
摘要:
python文本 拼接、合并字符串 场景: 拼接、合并字符串 在这个场景中,我们首先想到的当然是使用+或者+=将两个字符串连接起来 >>> a='a' >>> b='b' >>> c=a+b >>> c 'ab' >>> 如果整个程序只有两个字符串需要拼接,那没有问题 但是如果程序里面大量存在拼接,甚至需要循环拼接,这个时候性能问题就会出现 原因:字符串是不... 阅读全文
摘要:
python文本 去掉字符串前后空格 场景: 去掉字符串前后空格 可以使用strip,lstrip,rstrip方法 >>> a="abc".center (30) >>> a ' abc ' >>> b=a.lstrip () >>> b 'abc ' >>> c=a.rstrip... 阅读全文
摘要:
python文本 判断对象里面是否是类字符串 场景: 判断对象里面是否是类字符串 一般立刻会想到使用type()来实现 >>> def isExactlyAString(obj): return type(obj) is type('') >>> isExactlyAString(1) False >>> isExactlyAString('1') ... 阅读全文
摘要:
python文本 单独处理字符串每个字符的方法汇总 场景: 用每次处理一个字符的方式处理字符串 方法: 1.使用list(str) >>> a='abcdefg' >>> list(a) ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> aList=list(a) >>> for item in aList: print(it... 阅读全文
摘要:
python文本 字符串开头或者结尾匹配 场景: 字符串开头或者结尾匹配,一般是使用在匹配文件类型或者url 一般使用startwith或者endwith >>> a='http://blog.csdn.net/raylee2007' >>> a.startswith ('http') True 注意:这两个方法里面的参数可以是str,也可以是元组,但是不可以是列表和字典 ... 阅读全文
摘要:
python文本 字符与字符值转换 场景: 将字符转换成ascii或者unicode编码 在转换过程中,注意使用ord和chr方法 >>> print(ord('a')) 97 >>> print(chr(97)) a >>> 有时候需要反转过来使用: >>> print(str(ord('a'))) 97 >>> print(chr(ord('a... 阅读全文
摘要:
python 字符串对齐 场景: 字符串对齐 python提供非常容易的方法,使得字符串对齐 >>> print("abc".center (30,'-')) -------------abc-------------- >>> print("abc".ljust (30)+'|') abc ... 阅读全文
摘要:
7. python 字符串格式化方法(2) 紧接着上一章节,这一章节我们聊聊怎样添加具体格式化 就是指定替换字段的大小、对齐方式和特定的类型编码,结构如下: {fieldname!conversionflag:formatspec} fieldname指定参数的一个数字或者关键字,后面可选.name或者[index]引用 conversionflag可以是r/s/a或者是在该值上对repr/str... 阅读全文
摘要:
7. python 字符串格式化方法(1) 承接上一章节,我们这一节来说说字符串格式化的另一种方法,就是调用format() >>> template='{0},{1} and {2}' >>> template.format ('a','b','c') 'a,b and c' >>> template='{name1},{name2} and {name3}' >>>... 阅读全文
摘要:
6. python 字符串格式化表达式 字符串格式化允许在一个单个的步骤中对一个字符串执行多个特定类型的替换 特别是给用户提示的时候,格式化非常方便 实现方法: 1.格式化表达式,类似于c语言的printf 在表达式中,我们使用%二进制操作符 >>> print('this is %d %s bird' % (1,'dead')) this is 1 dead bird 举上面的例子... 阅读全文
摘要:
5. python 文本解析 这一章节我们简单的聊聊文本解析的两种方法: 1.分片,通过分片,记录偏移处,然后提取想要的字符串 例子: >>> line='aaa bbb ccc' >>> col1=line[0:3] >>> col3=line[8:] >>> col1 'aaa' >>> col3 'ccc' >>> 2.split() ... 阅读全文
摘要:
4. python 修改字符串实例总结 我们知道python里面字符串是不可原处直接修改的,为了是原来的字符串修改过来,我们有一下方法: 1.分片和合并 >>> a='abcde' >>> b='fghij' >>> c=a[1:3]+b[2:5]+' end' >>> c 'bchij end' >>> 2.replace() >>> a='aaabb... 阅读全文