python2.7学习记录,自我感觉比较重要的记录一下
一、字符串
# 单引号,双引号,三引号(字符串块)
# raw防止转义
# not use raw
>>> stri = 'c:\new\file'
>>> stri
'c:\new\x0cile'
#use raw
>>> stri = r'c:\new\file'
>>> stri
'c:\\new\\file'
# 转成字符数组
>>> list(stri)
['c', ':', '\\', 'n', 'e', 'w', '\\', 'f', 'i', 'l', 'e']
# find查找方法,返回字符串头所在的角标
>>> stri.find('new')
3
# 字符串截取
>>> stri[2:6]
'\\new'
# 其他类型转成字符串
>>> str(3)
'3'
# 单个字符与对应的二进制编码的转换
>>> ord('a')
97
>>> chr(97)
'a'
# 字符串是不可变序列,不能再原地修改
>>> stri[1] = 's'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
# 要修改需要合并,分片这样的工具来操作
>>> stri = stri + 'ad'
>>> stri
'C:\\file\\newad'
# 替换字符串
>>> stri = 'C:\\file\\newad'
>>> stri += "new"
>>> stri
'C:\\file\\newadnew'
>>> stri.replace('new','_old_')
'C:\\file\\_old_ad_old_'
# 在char数组之间进行变换
>>> li = list(stri)
>>> li
['C', ':', '\\', 'f', 'i', 'l', 'e', '\\', 'n', 'e', 'w', 'a', 'd', 'n', 'e', 'w']
>>> ''.join(li)
'C:\\file\\newadnew'
# 文本解析
>>> stri = stri.replace("new", " new ")
>>> stri
'C:\\file\\ new ad new '
# split 默认是 空格解析
>>> stri.split()
['C:\\file\\', 'new', 'ad', 'new']
# 其他解析方法
>>> stri.split('new')
['C:\\file\\ ', ' ad ', ' ']
# 字符串格式化
# 还有其他替换符号,比如十进制,八进制,十六进制 双%解析为一个%
>>> 'str:%s,char:%c,int:%i,float:%f,%% ' % ('string',3,23,12.5)
'str:string,char:\x03,int:23,float:12.500000,% '
>>> '%.2f' % 1.23455
'1.23'
# 字符串编码
>>> stri.encode('utf-8')
'C:\\file\\ new ad new '
# 大小写转换
>>> stri.upper()
'C:\\FILE\\ NEW AD NEW '
>>> stri.lower()
'c:\\file\\ new ad new '
二、列表List
# 字符串转化成字符数组
>>> l = list('spam')
>>> l
['s', 'p', 'a', 'm']
>>>
# 连续的整数列表
>>> range(-4,4)
[-4, -3, -2, -1, 0, 1, 2, 3]
# 数组截取
>>> l[1:3]
[-3, -2]
# 列表解析(元素过滤操作返回)
>>> l
[1, 3, 5, 6, 2]
>>> l = [x ** 2 for x in l ]
>>> l
[1, 9, 25, 36, 4]
# 删除(只能删除第一个出现的元素)
>>> l
[1, 2, 2, 3, 5, 6, 2]
>>> l.remove(2)
>>> l
[1, 2, 3, 5, 6, 2]
# 删除某下标元素
>>> l
[1, -2, 2, -3, 5, 6, -2]
>>> del l[1]
>>> l
[1, 2, -3, 5, 6, -2]
# 判断是否含有某元素
>>> l
[1, 9, 25, 36, 4]
>>> 9 in l
True
>>> 91 in l
False
# list的map(内置函数)操作
>>> l
[1, -2, 2, -3, 5, 6, -2]
>>> list(map(abs,l))
[1, 2, 2, 3, 5, 6, 2]
# 连续的数组列表 0-10
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 遍历这个数组,处理一下,返回另一个数组
>>> [('n'+str(i)) for i in range(10)]
['n0', 'n1', 'n2', 'n3', 'n4', 'n5', 'n6', 'n7', 'n8', 'n9']
# 倒序
>>> arr = [1,2,3]
>>> arr_re = reversed(arr)
>>> [ i for i in arr_re]
[3, 2, 1]
三、字典
# 初始化,检测key值是否存在,获取key键列表,获取values值列表
>>> m = {'spam':1,'list':2}
>>> m
{'list': 2, 'spam': 1}
>>> 'list' in m
True
>>> m.keys()
['list', 'spam']
>>> m.values()
[2, 1]
# 创建字典的方法
# method 1
>>> {'name':'mike', 'age':'20'}
{'age': '20', 'name': 'mike'}
# method 2
>>> dic = {}
>>> dic['name'] = 'mike'
>>> dic
{'name': 'mike'}
# method 3
>>> dict(name='mike',age=20)
{'age': 20, 'name': 'mike'}
# method 4
>>> dict([('name','age'),('mike',20)])
{'mike': 20, 'name': 'age'}
# 新加键值对,删除键值对
>>> m['del']=3
>>> m
{'del': 3, 'list': 2, 'spam': 1}
>>> del m['del']
>>> m
{'list': 2, 'spam': 1}
# map的list应用
>>> list(m)
['list', 'spam']
>>> list(m.items())
[('list', 2), ('spam', 1)]
# 合并操作(update)
>>> m
{'list': 2, 'spam': 1}
>>> m2
{'mew': 5}
>>> m.update(m2)
>>> m
{'mew': 5, 'list': 2, 'spam': 1}
# 一个从列表得到字典的实例:
>>> dic = {c.lower() : c for c in ['NAME','AGE','GENDER']}
>>> dic
{'gender': 'GENDER', 'age': 'AGE', 'name': 'NAME'}
# 初始化字典默认值的实例:
# method 1
>>> dic = dict.fromkeys(['nu','nm'],0)
>>> dic
{'nu': 0, 'nm': 0}
# method 2
>>> dic = {k:0 for k in ['q','w']}
>>> dic
{'q': 0, 'w': 0}
# 字典key键值排序
>>> dic
{'q': 0, 'a': 5, 'w': 0}
>>> li = list(dic.keys())
>>> li
['q', 'a', 'w']
>>> li.sort()
>>> li
['a', 'q', 'w']
# 字符串数组排序
>>> vers_arr = ['1','2','12','222']
>>> vers_arr.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()))
>>> vers_arr
['1', '12', '2', '222']
# 判断时候存在一个键值
>>> dic
{'q': 0, 'a': 5, 'w': 0}
>>> 'a' in dic
True
四、元组(tuple)
元组与list非常类似,区别是元组不能在原处修改,并且通常写成圆括号
元组的特殊用法:
# 一个数字而已
>>> tu = (0)
>>> tu
0
# 一个元组
>>> tu = (0,)
>>> tu
(0,)
转化成list
>>> list(tu)
[0]
五 日期处理
# 日期格式化
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S');
'2013-04-28 09:41:08'
# 根据当天的时间推算出上一周的起始日期
import datetime
date = "2013/04/27"
date_time = datetime.datetime.strptime(date, '%Y/%m/%d')
# 周一 weekday 是 0
weekday = date_time.weekday() + 1
print date_time
print weekday
last_week_one = date_time - datetime.timedelta(days = (6+weekday))
last_week_seven = date_time - datetime.timedelta(days = (weekday))
print last_week_one
print last_week_seven
# 输出
>>> print last_week_one
2013-04-15 00:00:00
>>> print last_week_seven
2013-04-21 00:00:00
# 两个日期之间的日期列表
>>> from datetime import date, timedelta
>>>
>>> start = date(2013,2,25)
>>> end = date(2013,3,05)
>>>
>>> delta = end - start
>>>
>>> dates = [ str((start + timedelta(days=i))) for i in range(delta.days + 1)]
>>>
>>> dates
['2013-02-25', '2013-02-26', '2013-02-27', '2013-02-28', '2013-03-01', '2013-03-02', '2013-03-03', '2013-03-04', '2013-03-05']
其他
实例:产生随机的n个字符的字符串
import string
import random
string.join(random.sample(list('qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM@&*'), 8)).replace(" ","")
# 保留小数点2位,0补齐
>>> a = 14656452.9
>>> str = "%.2f" % a
>>> str
'14656452.90'
# 四舍五入
>>> a = 14656452.9
>>> round(a)
14656453.0
# 四舍五入,取整数
>>> int(round(a))
14656453
# 获取格式化的时间
import time
>>> time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
'2013-03-28 10:08:00'
一个python的uri特殊符号编码
>>> import urllib
>>> urllib.quote('&a=sdf&%#')
'%26a%3Dsdf%26%25%23'
>>> urllib.unquote('%26a%3Ds%26n')
'&a=s&n'
# 如果涉及到编码问题
urllib.quote('中文'.decode(sys.stdin.encoding).encode('utf8'))
分享到:
相关推荐
Python爬虫技术是一种用于自动化网页数据抓取的编程方法,尤其适合初学者快速入门。Python在爬虫领域具有显著优势,因为其拥有丰富的第三方库,如requests、lxml和parsel等,使得编写爬虫代码变得简洁高效。此外,...
Python 3 语法小记(一)入门 (print 函数用法总结) Python 是一种广泛使用的高级编程语言, Python 语法小记旨在为刚刚开始接触 Python 的程序员提供重要函数的记忆,保证学习和开发过程进展顺利。本文将总结 ...
根据给定文件的信息,我们可以总结出关于Python3中字典(dictionary)的相关知识点: ### 一、字典的基本概念 字典是Python中的一个重要数据结构,它是一种无序的集合,用于存储键值对(key-value pair)。每个键值对...
python爬虫-加速乐cookie混淆解析实例小记
在Python Django项目开发中使用Extjs时,开发者们可能会遇到各种各样的小错误或者问题。下面将详细地讨论其中的一些问题以及解决方法,涉及知识点包括Python Django框架、前端库Extjs以及一些常见的编程问题。 1. ...
在本项目中,我们将探索如何利用Linux操作系统,Java编程语言,Python3,NumPy库以及STL文件格式来实现3D打印技术。这是一个跨学科的综合应用,涉及到计算机科学、软件开发以及制造技术。 首先,Linux是开源的操作...
在使用Python进行数据库操作时,MySQL-Python库(也称为`mysqlclient`)是一个常见的选择。然而,在安装和使用过程中可能会遇到一些问题。本篇文章主要针对安装MySQL-Python时遇到的常见错误及其解决方案进行详细...
"Python GUI Win10 便贴"项目就是利用Tkinter来模仿Windows 10操作系统中的便签功能,提供了类似的功能,让用户可以在桌面上创建、编辑和管理文本小记。 Tkinter库提供了丰富的控件和布局管理器,使得开发者可以...
媳妇儿单位给个活,说让她对比两个表,查找其中一个表的某一列的内容是否在第二张表中存在媳妇儿问我有啥好用,简单的方法没,我第一时间想到的是用python解决,因为
最近想到尝试用python开发一款app,google搜索了一番后,发现确实有路可寻,目前也有了一些相对成熟的模块,于是便开始了动手实战,过程中发现这其中有很多坑,好在最终依靠google解决了,因此小记一番。 说在前面的...
《量化投资与机器学习:2019Python官方年度报告》是针对Python在金融商贸领域,特别是量化投资和机器学习应用的一份深度分析报告。2019年的这份报告揭示了Python在这些领域的广泛影响力和持续增长的趋势。Python作为...
百度paddle课程学习小记(上)百度paddle课程学习小记(上)Day-1:python基础练习Day-2:《青春有你2》选手信息爬取遇到的问题Day-3《青春有你2》选手数据分析遇到的问题未完待续 百度paddle课程学习小记(上) 第...
代码基于phantomjs爬虫小记 by wils0n ,在tuicool上也有这篇文章http://www.tuicool.com/articles/JbEfIvV , 原作者的代码在Github上也有crawler_phantomjs 后来看到浅谈动态爬虫与去重这篇文章,受益匪浅,其...
这篇名为“图片缩放小记”的博客文章可能详细介绍了如何通过编程方式来调整图像的大小,以便适应不同的显示需求。通常,这涉及到图像处理库的使用,如在Python中的PIL(Pillow)库或Java中的Java AWT/Swing库。 ...
在Python编程中,`os`模块是一个非常重要的标准库,它提供了许多与操作系统交互的函数。这篇文章我们将深入探讨`os`模块的一些常用功能,包括创建文件夹、处理目录与路径、遍历目录与子文件、过滤序列后缀、以及复制...
Thrift将IDL转换为各种目标语言(如C++, Java, Python, PHP等)的代码,这些代码包含了客户端和服务端的实现,以及用于数据序列化的编解码器。这样,服务端可以实现服务,客户端可以调用这些服务,而无需关心底层...
Selenium是一款广泛应用于Web应用程序自动化测试的开源工具,它支持多种编程语言,如Python、Java、C#等,能够模拟真实用户在浏览器上的操作,进行功能验证和性能测试。本资料包包含了Selenium的详细讲解PPT以及...