python常用语法
来源:互联网 发布:关口知宏 对中国评价 编辑:程序博客网 时间:2024/06/06 03:51
(请点击目录)
前段时间学习,总是学到新的python语法类,库类的知识,遇到的就写一篇博客,有点散落,今天花写时间整理成一篇python基础小杂烩,之后遇到的类似的问题会持续更新下面。
字符串替换replace()
将“hello world”替换为“hello python”
str = "hello world"str.replace("world","python")//hello python
字符串查找find()
find用于字符串查找,不存在返回值为-1。
str = "123" str.find('0') //-1
join()函数的用法:
函数描述
python join()方法用于将序列中的元素以指定的字符连接成一个新的字符串。语法
s.join(sequence)
参数
sequence :要连接的元素序列 。
s : 连接的方式返回值
返回通过指定字符连接序列中元素后生成的新字符串。- 实例
# -*- coding:utf-8 -*-s = '*'seq = ("a", "b", "c") #字符串序列print s.join( seq )输出: a*b*c
输出中文
#python2.7# -*- coding: utf-8 -*-print u'许娜'
zfill()语法
- 函数描述
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。 - 语法
str.zfill(width)
- 参数
width – 指定字符串的长度。原字符串右对齐,前面填充0。 - 返回值
返回指定长度的字符串。 - 实例
#!/usr/bin/pythonstr = "this is string example....wow!!!";print str.zfill(40);print str.zfill(50); 输出结果:00000000this is string example....wow!!!000000000000000000this is string example....wow!!!
排序 sort 与 sorted
sort和sorted定义区别:
sort是应用在列表list上的方法,sorted可以对所有可迭代的对象进行排序操作。
list的sort方法返回的是对已经存在的列表进行操作,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行的操作。sort和sorted语法区别:
sort()方法语法:list.sort([func])
参数:func–可选参数。
返回值:无返回值,但是会对列表的对象进行排序。
sorted()方法语法:
sorted(iterable[, cmp[, key[, reverse]]])
参数:
iterable : 可迭代对象
cmp : 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返 回1,小于 则返回-1,等于则返回0。
key :主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象 中的一个元素来进行排序。
reverse : 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值 :返回重新排序好的列表
- 例题:
给你一个list L, 如 L=[2,8,3,50], 对L进行降序排序并输出,
如样例L的结果为[50,8,3,2]
代码:
[python] view plain copy
print?
m=sorted(L,reverse=True) print m
列表嵌套字典-按照字典某个key排序
來一個小例子:
问题: 给你一个列表嵌套字典的列表,让你根据字典里面的name关键字从小到大排序?
sort不仅能列表排序,字典排序,还可以嵌套排序。
注意:reverse = False 升序,True为降序
a = [{'letter': 'b','name':'0'}, {'letter': 'c','name':'9'}, {'letter': 'd','name':'4'}, {'letter': 'a','name':'2'}] a.sort(key=lambda x: x['name'], reverse=False) print a
运行结果:
docopt :命令行解析小工具
描述
docopt能根据你写的文档描述,自动生成解析器,可以为Python小程序创造优雅的命令行界面(Command Line Interface)。安装
我的环境:ubuntu16.04 + python3.5.2
现在我们使用最优雅的安装方法sudo pip3 install docopt
小例子演示一下
# !usr/bin/env/python3.5.2# -*- coding:utf-8 -*-"""Usage: ticket [-dgktz] <from> <to> <date>Options: -h --help Show this screen. -d 动车 -g 高铁 -k 快速 -t 特快 -z 直达"""from docopt import docoptdef cli(): arguments = docopt(__doc__, version = 'tickets 1.0') date_station = arguments.get('<date>') print (arguments)if __name__ == '__main__': cli()
运行:
下面解释一下:
Usage: 用法
Options: 选项
[-dgktz] :代表可选的选项,上面没有选择方括号中的任一项,所以运行之后每一个都是显示的False。
从运行结果可以看到返回的是字典类型,这对于后续提取数据十分方便。
同时可以看到docopt用起来很方面,只需编写一个帮助文档,就可以创建CLI
更新:
上面没有选择[Options]里面的内容所有显示的都是false,接下来选择里面的选项后看一下结果:
选中的信息显示为true,这对于我们筛选信息很有用的。
将从数据库提取的数据转为json格式
JSON是一种轻量级的数据交换格式。其简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
下面一个小例子演示一下怎样将数据库中的内容通过提取json转换为可读性更高的内容。
数据库中的一个student表内的内容:
mysql> select * from student;+----+-------+| id | name |+----+-------+| 1 | name1 || 2 | name2 || 3 | name3 |+----+-------+3 rows in set (0.00 sec)
目标是得到如下格式的数据
{ "items": [ { "id": 1, "name": "name1" }, { "id": 2, "name": "name2" }, { "id": 3, "name": "name3" } ]}
代码:
# -*- coding:utf-8 -*-import MySQLdbimport jsondef covert_to_json_string(data): ret = [] for i in data: tmp = {'id':i[0],'name':i[1]} ret.append(tmp) ret = json.dumps({'items': ret},sort_keys=True,indent=4) return retconn = MySQLdb.Connect( host = '127.0.0.1', port = 3306, #注意端口号为数字类型,其余都为字符串 user = 'root', passwd = 'root', db = 'test', charset = 'utf8' )cursor = conn.cursor()sql = "select * from student"cursor.execute(sql)rs = cursor.fetchall()print rsrs1 = covert_to_json_string(rs)print rs1with open('/home/xuna/1.json', 'w') as handle: handle.write(rs1)cursor.close()conn.close()
编码错误:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe4 in position
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe4 in position
0: ordinal not in range(128)
对于这种情况,我们有两种方法来改正错误:
一是明确的指示
#! /usr/bin/env python # -*- coding: utf-8 -*- s = '中文' s.decode('utf-8').encode('gb18030') 改 sys.defaultencoding 为文件的编码方式
二是更改 sys.defaultencoding 为文件的编码方式
# -*- coding: utf-8 -*- import sys reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入 sys.setdefaultencoding('utf-8') str = '中文' str.encode('gb18030')
列表解析
普通方法创建平方表:
squares = [] for value in range(1,11): square = value**2 squares.append(square) print (squares)运行结果: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表解析将for 循环和创建新元素的代码合并成一行,并自动附加新元素。
下面的示例使用列表解析创建平方数列表。
squares = [value**2 for value in range(1,11)] print (squares)
要使用这种语法,首先指定一个描述性的列表名,如square;然后,指定一个左方括号,并定义一个表达式,用于生成你要存储列表中的值,在这个示例中,表达式为value**2,它计算平方值。接下来,编写一个for循环,用于给表达式提供值,在加上右方括号,在这个例子中,for循环为 for value in range(1,11),它将值1~10提供给表达式value**2。请注意for语句末尾没有冒号。
要创建自己的列表解析,需要经过一定的练习,但能够熟练的创建常规列表后,你会发现这样做是完全值得的,当你觉得编写三四行代码来生成列表有点繁复时,就可以考虑创建列表解析。
参考:Python编程:从入门到实践
Python 汉字转化成拼音
安装包 pypinyin 0.23.0
可以使用 pip 进行安装:(我用的第一种)
$ pip install pypinyin
easy_install 安装:
$ easy_install pypinyin
源码安装:
$ python setup.py install
使用
python 中如何判断list中是否包含某个元素
在Python中可以通过in和not in关键字来判读一个list中是否包含一个元素
theList = ['a','b','c']if 'a' in theList: print ('a in the list')if 'd' not in theList: print ('d is not in the list')运行结果:a in the list d is not in the list
什么是爬虫
爬虫
一段自动抓取互联网信息的程序价值:
互联网数据,为我所用
12.什么是http协议
- 全称 :
HyperText Transfer Protacol
http是一种没有状态的,应用层的协议,在一种分布式,协作的超文本信息系统上。
- Python常用语法
- Python常用语法
- python 常用 语法 库函数
- Python常用简单语法
- python 常用 uiautomator语法
- python常用语法
- python常用语法
- python之常用语法技巧
- Python自动化测试常用语法
- python机器学习常用语法
- python scrapy xpath常用语法
- Python 常用语法函数整理
- Python语法备忘-常用函数
- 关于python一些常用的语法
- python系列-常用语法及注意事项
- Python常用语法(学习更新中...)
- Python与机器学习前言——Python常用语法
- Python 学习第一课 (常用的语法规范)
- Android中用TextView显示大量文字的方法
- php视频上传
- maven学习笔记(五) maven的依赖
- poj 3070 Fibonacci,不用打表的快速斐波那契
- Python ML环境搭建与学习资料推荐
- python常用语法
- 修改z-stack LED引脚出现引脚不可控
- hdu6092 Rikka with Subset(母函数+思维)
- Swift3.0 Swift中cell分割线靠左对齐,cell基类封装
- 网易笔试:买苹果
- oracle中逻辑与、逻辑或、逻辑与非函数的使用
- 自然语言理解应用API对比报告
- 南阳OJ-题目96 n-1位数【语言入门】
- scala中的函数和方法