Python编程快速上手——让繁琐工作自动化学习笔记
第一部分 基本语法
1、字符串不能直接和数字相加,要用str()转一下;但是可以和数字相乘,用于表示多个字符串复制;字符串不能和浮点数直接结合,字符串可以和字符串直接相加;
2、输入函数用input(),默认是字符串 计算字符串长度用len()
3、注释用#
4、类型转换,int()整型,str()字符串类型,float()浮点类型
5、**是求指数值 //是整除 /是除法
6、判断变量类型,type(变量)
第二部分 控制流
1、not 非 and 与 or 或
2、range(开始,结束,步长) 注意:循环不包括‘结束’
3、import 函数 导入函数 from import是另一种导入形式,举例 from random import * 可以在使用random函数时不用加random.前缀
4、sys.exit()提前结束程序,需要import sys
第三部分 函数
1、def 函数名(入参):
2、关键字 print('hello',end='') 连接字符 print('cats','dogs','mice',sep=',')用 ','代替‘ ’
3、要想在函数中修改全局变量,需要在全局变量前加上global关键字
4、异常处理 try 和except
常用的异常类型
1、NameError:尝试访问一个未申明的变量
>>> v
NameError: name 'v' is not defined 2、ZeroDivisionError:除数为0
>>> v = 1/0
ZeroDivisionError: int division or modulo by zero 3、SyntaxError:语法错误
>>> int int
SyntaxError: invalid syntax (<pyshell#14>, line 1) 4、IndexError:索引超出范围
>>> List = [2]
>>> List[3]
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
List[3]
IndexError: list index out of range 5、KeyError:字典关键字不存在
>>> Dic = {'':'yes', '':'no'}
>>> Dic['']
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
Dic['']
KeyError: '' 6、IOError:输入输出错误
>>> f = open('abc')
IOError: [Errno 2] No such file or directory: 'abc' 7、AttributeError:访问未知对象属性
>>> class Worker:
def Work():
print("I am working")
>>> w = Worker()
>>> w.a
Traceback (most recent call last):
File "<pyshell#51>", line 1, in <module>
w.a
AttributeError: 'Worker' object has no attribute 'a' 8、ValueError:数值错误
>>> int('d')
Traceback (most recent call last):
File "<pyshell#54>", line 1, in <module>
int('d')
ValueError: invalid literal for int() with base 10: 'd' 9、TypeError:类型错误
>>> iStr = ''
>>> iVal = 22
>>> obj = iStr + iVal;
Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
obj = iStr + iVal;
TypeError: Can't convert 'int' object to str implicitly 10、AssertionError:断言错误
>>> assert 1 != 1
Traceback (most recent call last):
File "<pyshell#70>", line 1, in <module>
assert 1 != 1
AssertionError
第四部分 列表
1、负数下标
整数-1下标指的是列表的最后一个下标,-2指的是列表的倒数第二个下标
2、利用切片取得子列表
spam[1:4]表示取得spam[1]到spam[3]的区间值作为一个新的切片,可以使用省略方法
spam[:4]表示取得spam[0]到spam[3]的区间值作为一个新的切片,省略的值取得是0
spam[1:]表示取得spam[1]到spam最后一个元素的区间值作为一个新的切片,省略的值取得是列表的长度
3、列表的长度
使用len(spam)
4、列表可以向数组那样进行赋值
5、列表的连接和复制
使用+可以连接两个连接为一个列表
使用['a','b','c']*n可以复制n个列表为一个列表
6、列表元素的删除
del spam[3]
7、列表的判断
in 'howdy' in ['hello','howdy']
>> True
not in
>> False
8、多重赋值
cat = ['fat','black','loud']
size,color,disposition = cat
等号左侧的变量数目和列表长度必须严格相等,否则会报ValueError
9、增强赋值
类似于C中+=,*=,/=,-=,%=
增强赋值同样可以用于列表中,作用等于于对以元素为单位的操作
10、方法
类似于C++中类的成员方法
     spam.index('hello') 取出'hello'在列表中的下标索引,重复值返回第一次出现的下标索引
     spam.append('yes') 在列表尾部追加一个元素
     spam.insert(1,'no') 在指定spam[1]之前插入一个元素
     spam.remove('hello') 删除指定元素,如果有多个重复元素存在,删除第一个元素,后面的元素不删除。
     spam.sort() 对数字按照由小到大排列,对字符串按照ASCII字符顺序排列
     spam.sort(reverse=True) 对字符串按照ASCII字符顺序逆序排列,对数字按照由大到小排列
     spam.sort(key=str.lower) 对表项全部按照小写字母进行排列
     spam.sort(1,2,3,'hello','no') -----WRONG,不能对既有数字又有字符串的列表进行排序,因为不知道按照那个原则进行排序
11、续行字符'\',在行末使用
12、可变对象和不可变对对象
可变即内存空间可变,不可变即内存空间不可变。可变的对象的变量在传递时,传递的是引用地址(可以理解为指针),所以拷贝的时候不是真正拷贝内存空间,仅仅是多了个变量指向相同的内存空间而已。对新的变量进行增删都会影响到原始变量,即浅拷贝。不可变对象,拷贝或通过新变量传递时,一旦发生修改,会新生成一个跟原来对象属于不同内存空间的新对象值。元组(tuple)、数值型(number)、字符串(string)均属于不可变对象,而字典型(dictionary)和列表型(list)的对象是可变对象。
13、引用
在变量必须保存可变数据类型的值时,例如列表或字典,Python就使用引用。对于不可变的数据类型的值,例如字符串、整型或元组,Python变量就保存值本身。
14、传递引用
当函数被调用时,参数的值被复制给变元。对于列表和字典,这意味着变元得到的是引用的拷贝。
15、copy模块的copy()和deepcopy()函数
使用copy.copy()来避免引用传递带来的麻烦,如果被复制的列表或字典中包含列表或字典,使用copy.deepcopy()
import copy
samp = ['A', 'B', 'C', 'D']
cheese = copy.copy(samp)
cheese[1] = 42
print(samp)
16、列表和字符串的共同点
列表和字符串都可以传入len(),都有下标和切片,用于for循环,连接或复制,并与in和not in操作符一起使用。
第五部分 元组
1、元组使用()进行区别,以逗号','作为最后一个截止,否则只有一个元素时有可能会不被认为是元组类型
2、列表和元组之间的类型转换 使用list() tuple()进行类型转换
3、列表和元组的区别
列表是可以修改的,他们可以添加值、删除值和修改值。元组是不可以修改的,他们根本不能改变。而且元组使用的是括号,而列表使用的方括号。
第六部分 字典和结构化数据
1、字典是许多值的结合,但不像列表的下标,字典的索引可以使用许多不同的数据类型,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键-值”对,字典使用花括号{}包裹。
2、字典与列表
字典也可以使用数字作为键;不像列表,字典中的表项时不排序的。相同的两个列表其顺序也必须是一样的,而字典则未必;因为字典是不排序的,所以不能进行列表那样的切片操作。
3、字典的查找和添加
查找键值是否位于字典中,可是使用in操作,字典键值对的添加可是使用普通的赋值操作进行。
检查该键是否存在于字典中,也可使用get()方法,其有两个参数,第一个是取得其键的值,第二个是如果查找键失败,返回的默认值
4、字典方法
keys()方法------取出字典键
values()方法----取出字典值
items()方法-----取出字典键值对
 spam = {'color': 'red', 'age': ''}
 for i in spam.keys():
     print(i)
 for i in spam.values():
     print(i)
 for i in spam.items():
     print(i)
 age
 color
 42
 red
 ('age', '')
 ('color', 'red')
Python dictionary
可以将keys()和values()返回的值存储为列表,例如list(spam.keys())
也可以使用多重赋值的技巧,在for循环中将key和value对号入座
for k, v in spam.items():
print('key:' + k + 'value:' + str(v))
setdefault()方法---设置字典键对应的默认值
如果没有默认值,将方法设置的值设置成功,如果已有默认值,则保持原状。
spam.setdefault('color', 'black')
5、漂亮打印
使用 import pprint 可以按照字典的样式打印出来,例如 pprint.pprint(myDict) ,如果想将打印的结果转为字符串而不是直接输出在屏幕上可以使用 print(pprint.pformat(myDict))
6、字典实战——棋盘井字游戏
 theBoard = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ',
             'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ',
             'low-L': ' ', 'low-M': ' ', 'low-R': ' '}
 def showBoard(board):
     print(board['top-L'] + '|' + board['top-M'] + '|' + board['top-R'])
     print('-+-+-')
     print(board['mid-L'] + '|' + board['mid-M'] + '|' + board['mid-R'])
     print('-+-+-')
     print(board['low-L'] + '|' + board['low-M'] + '|' + board['low-R'])
 turn = 'X'
 for i in range(9):
     showBoard(theBoard)
     print('the turn for' + turn + 'move in which space ?')
     move = input()
     theBoard[move] = turn
     if turn == 'X':
         turn = 'O'
     else:
         turn = 'X'
 showBoard(theBoard)
井字游戏
7、字典作为一种数据类型,可以字典有嵌套字典
第七部分 字符串操作
1、字符串字面量
双引号“that's a cat ”:双引号同样可以表示字符串,并且在双引号中添加单引号作纯字符串使用;
转移字符‘\’:转移字符可以讲单引号转为普通字符,从而可以避免引起语义错误;
原始字符串r‘abc’:原始字符串任务‘’中的所有字符都是字符串的一部分,例如‘that is carol\'s cat ’中的转移字符‘\’也被认为是字符串的一部分从而打印为 that is carol\'s cat
三重引号''':使用print打印多行字符串时,可以使用三重分号将字符串打印出来,例如
 print('''Dear Alice,
I like you very much ..... ''') 
Dear Alice,
I like you very much ..... 
多行注释:代码中使用 '''Python''' 和 """Python""" 都可以起到注释代码的作用
字符串下标切片:字符串可以像列表一样使用下标切片取出部分字符串,但是并没有改变原来的字符串,只是新建了一个字符串,例如
sapm = 'hello world'
>>>spam[0]
'H'
>>>spam[4]
'o'
>>>spam[-1]
'd'
>>>spam[0:5]
'hello'
>>>spam[:5]
'hello'
>>>spam[6:]
'world'
字符串in和not in操作符:可以使用in或者not in判断一个字符串是否在另一个字符串中存在,返回值为布尔型。
2、字符串方法
字符串方法upper()、lower()、isupper()、islower():
isX字符串方法:
isalpha()返回TRUE,如果字符串只包含字母,并且非空;
isalnum()返回TRUE,如果字符串值包含字母和数字,并且非空;
isdecimal()返回TRUE,如果字符串包含数字字符,并且非空;
isspace()返回TRUE,如果字符串值包含空格,制表符和换行,并且非空;
istitle()返回TRUE,如果字符串仅包含以大写字母开头后面都是小写字母的单词;
字符串方法startswith()、endswith():
字符串方法join()、split():
join()连接字符串
>>','.joini['my','name','is']
>>my,name,is
split()分离字符串
 >>'myABCnameABCisABC'.split('ABC')
 >>['my','name','is']
 >>'My name is '.split('m')
 >>['My na','e is']
split('\n')以换行进行分割字符串
字符串对齐方法rjust()、ljust()、center():
左右对齐和居中,其中第二个参数是填充参数,可以选择填充字符;
字符串删除空白字符方法strip()、rstrip()、lstrip():
删除两边,右边和左边的空白字符,第二个参数启用时指定需要删除的指定字符串
字符串拷贝粘贴方法pyperclip():
'''
该模块需要单独安装
'''
>>import pyperclip
>>pyperclip.copy('Hello World!')
>>pyperclip.paste()
>>'Hello World!'
Python编程快速上手——让繁琐工作自动化学习笔记的更多相关文章
- Python编程快速上手-让繁琐工作自动化-第二章习题及其答案
		
Python编程快速上手-让繁琐工作自动化-第二章习题及其答案 1.布尔数据类型的两个值是什么?如何拼写? 答:True和False,使用大写的T和大写的F,其他字母是小写. 2.3个布尔操作符是什么 ...
 - 入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码
		
入门推荐学习<python编程快速上手>前6章是python的基础知识,通俗易懂地讲解基础,初学者容易犯错的地方,都会指出来.从第三章开始,每章都有一个实践项目,用来巩固前面所学的知识. ...
 - Python编程快速上手  让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘
		
Python编程快速上手 让繁琐工作自动化 - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:7qm4 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 通用 ...
 - 《Python编程快速上手 —让繁琐工作自动化》|百度网盘免费下载|Python自动化办公
		
Python编程快速上手—让繁琐工作自动化 提取码:u8vj 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过 P ...
 - python经典书记必读:Python编程快速上手 让繁琐工作自动化
		
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/69/ 来源:python黑洞网,专注 ...
 - Python 编程快速上手 第十八章 用 GUI 自动化控制键盘和鼠标
		
前言 这一章节讲述了如何实现 GUI 自动化,首先讲了一些处理异常状况的方法,然后是关于 GUI 自动化的内容,主要有三个部分: 控制鼠标 图像识别 控制键盘 下面引用一段话: 请将 GUI 自动化看 ...
 - 《python编程快速上手》
		
第一部分 编程基础 @表达式 ** % // @ >>> int(3.4) 3 >>>round(3.555,2)3.56 @判断条件时:0和0.0和‘’都是Fal ...
 - python编程快速上手之第10章实践项目参考答案
		
本章主要讲了python程序的调试,当程序有BUG或异常的时候,我们如何调试代码找出问题点.其实在本章之前的章节我们做练习的时候都会遇到各种各样的错语和异常,最初当不知道程序哪里出错的情况下不可否 ...
 - Python 编程快速上手 第十五章 保持时间,计划任务和启动程序
		
前言 这一章节的主要内容是: 处理时间类型的数据(使用python 的两个模块: time 和 datetime 来处理) 创建多个线程 (使用 threading 模块来创建多个线程) 进行多个进程 ...
 
随机推荐
- Intellij idea 15配置tomcat,maven
			
刚导了个项目进去,想把项目运行起开,怎么也找不到tomcat... ctrl + alt +s,打开设置窗,搜索 Application Server Tomcat: 点中间绿色的“+”号,添加选择t ...
 - 2.6. 类型(Core Data 应用程序实践指南)
			
单精度浮点数与双精度浮点数:创建NSManagedObject紫雷师,如果实体中单精度或双精度浮点数类型,那么在子类里,相关特性的类型是NSNumber. 小数:涉及货币时,建议设置为小数(decim ...
 - Struts2框架学习(三) 数据处理
			
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
 - 【翻译】在Visual Studio中使用Asp.Net Core MVC创建第一个Web Api应用(二)
			
运行应用 In Visual Studio, press CTRL+F5 to launch the app. Visual Studio launches a browser and navigat ...
 - JVM 参数设置
			
YGC FGC 都会影响程序的运行,中断程序,JVM参数调整比较复杂,现在记录了一下平时常用的JVM参数: jar 包启动: usr/java/bin/java -jar -Xms2560m -Xmx ...
 - 滚动视图(ScrollView)的功能与用法
			
滚动视图ScrollView由FrameLayout派生而出,它就是一个用于为普通组件添加滚动条的组件.ScrollView里最多只能包含一个组件,而ScrollVew的作用就是为该组件添加垂直滚动条 ...
 - open in browser
			
Sublime Text 3 Build 3065 Preferences-Key Bindings User: 直接key binding:{ "keys": ["al ...
 - 如何快速定位到Eclipse自动添加的TODO
			
把自动生成的// TODO ....前面加上todo,这样生成之后就会有编译错误,直接 ctrl+. 就到该位置了,可以删除todo留着// TODO ...,也可以ctrl+d删除一行: 不建议不生 ...
 - loadrunner Analysis :SLA(Service Level Agreement服务水平协议)
			
SLA是为负载场景定义的具体目标,用于与实际负载结果比较,确定系统是否达到性能目标. 1.1.1 设置SLA(以Transaction Response Time(Average)为例) 可以 ...
 - ajax数据交互(arcgis server)
			
通过ajax来调用服务器map数据,来实现搜索功能. 效果: 1.我要搜索下中国移动的地理信息: 2.会搜出17条消息,然后把他们分页显示,一页6条: 3.每一页的6天数据,会在map生成一个6条ma ...