【Python基础教程笔记(一)】环境,列表,元祖和字符串

来源:互联网 发布:淘宝设置客服分流没用 编辑:程序博客网 时间:2024/05/20 18:40

环境,列表,元祖和字符串

0介绍

这是笔者在阅读《Python基础教程》时所做的笔记。仅供以后查阅,复习使用。

1环境

1.1Windows

Windows环境下的Python直接去Python的官网下载安装即可,因为笔者不太喜欢在Windows系统里使用Python,所以这里就不在演示了。

1.2Linux

UnixLinux是自带Python的,笔者在win7系统下的Vmware10中安装了kali系统2017.2版本,较高版本的Linux是同时装有Python2.7Python3.0以上版本,Python2.7Python2.0最新版本,与Python3有较大的区别,《Python基础教程》使用的是Python2.5版本。笔者建议练习时两个版本(2.03.0)都要使用,进行区分比较学习,推荐安装最新版的Linux系统,如Ubuntu17。当然也可以考虑在现有Python版本的基础上进行升级,笔者在Ubuntu15.10尝试升级Python3,有某些库链接有问题,并没有简明有效的解决,所以直接安装了最新版本的Kali Linux系统,当然也可以使用Centos等等,看个人喜好了。下图可以看见Python2.7Python3.5的区别:


1.3琐碎的知识点

(1)十六进制和八进制


(2)语句:+-*/%等的使用方法和其他语言一致,没有什么特别的地方,如果是an次方,应写为a**n

(3)模块:导入模块的方法有两种。AImport模块名,使用:模块名.方法名;Bfrom模块名import方法名,使用:方法名。B方法在调用多个方法时,容易出项重名出错的情况,建议使用A方法,下面以cmath为例,cmath是复数模块,正常的数学运算不包括复数,如,开根号的操作(复数:负数的平方根是虚数)


(4)注释:#号后的为注释,#!不是注释

(5)字符串拼接,strrepr:一般的拼接手法使用+


Str函数会把值转换为合理形式的字符串,repr函数会创建一个字符串,以合法的Python的表达式的形式来表示值。


(6)r\r代表以原样输出字符串,\为转义符,使用时注意,\如果置于末尾会被视为终止,可使用“\\”来输出”\”,” \’ ”可以保证” ’ ”的输出


(7)Inputraw_inputinput要求用户按格式输入,而raw_input不需要。应该尽量使用raw_input(),而在Python3.0及其以上版本raw_input()已经整合成input(),只需要使用input即可。


1.4Python脚本运行方法

Python脚本的运行方法和其他脚本的运行方法没有什么区别,当然如果使用了不同编辑器,运行的方法也就不同,如ulipad,但是笔者只使用普通的文本文档编辑器,注意将后缀改为.py,当然不改后缀也是可以使用的。主要有两种:

(1)直接运行Python

Python 文件名


(2)直接运行脚本:需要在脚本内容的第一条指定Python路径和版本,默认在usr/bin目录下。

#!/usr/bin/python3.5执行:chmod +x 文件名./文件名


2列表和元组

Python有六种内建序列:列表,元组,字符串,Unicode字符串,Buffer对象,Xrange对象。此处讨论列表和元组,两者的主要区别在于,列表可以修改,元组不可以。列表满足元组的全部功能,某些函数的返回结果是元组(不可修改),需要转换成列表使用。

2.1通用序列操作

(1)索引:需要注意的是0表示数组第一个元素,-1表示最后一个元素。也就意味着既可以从左往右读,也可以使用负数让其从右往左读取。


(2)分片:我们可以分段取读取数组中的元素,如数组num[10],存在num[a,b,c]abc为三个参数,读取[a,b)范围内的数据,数据步伐为cc默认为1a,b,c当然可以是负数。但是b=-1时,拿不到最后一个字母。只能用a[-9:]


(3)相加和乘法:只有两种相同的序列才能进行相加,例如,字符串与列表相加


乘法:


(4)成员资格in:查找在序列中是否存在对应项,存在返回true,不存在返回false

#!/usr/bin/python3.5#print ("hello world!")DataBase=[['Tom','111'],['Jerry','222'],['Jack','333'],['Jhon','444'],]Name=input('Enter Name:')Pwd=input('Enter Pwd:')if([Name,Pwd] in DataBase):print ('Successful!')else :print ('Faild')

(5)三个函数:Len(),Max(),Min(),分别为返回数量,最大值,最小值。

2.2List列表

(1)元素赋值:列表名【索引号】=值;

(2)删除元素:del 列表名【索引号】;

(3)分片替换:利用分片进行替换。List函数可以把字符串列表化。


(4)Append():在列表的末尾追加一个列表。

(5)Count():统计某元素的个数

(6)Extend():追加一个列表中的多个值,extend操作是修改了a序列,而+号操作则是创建了一个新的序列。

(7)Index():返回索引;

(8)Insert():插入;

(9)Pop():出栈操作,可将append视为入栈操作;

(10)Remove():移除第一个匹配项,该函数没有返回值;

(11)Reverse():将列表中所有元素反向;

(12)Sort():排序列表,值得注意的是两个列表xy,如果直接将y=x,那么yx指向同一个列表,并非复制了一份,将x备份到y应该写为y=x[:]



(1)高级排序:默认排序为升序排序,可以配置cmp(),key(),reverse()函数来自定义排序规则。

2.3元组

元组与列表的区别在于,元组不可修改。另外,逗号对元组而言很重要


(1)Tuble():list一样,只不过该函数是将其转换为元组。

(2)元组创建不同外,其余操作与列表相同。

3字符串

3.1格式化(精简)

关于此部分在书中有精简版和完整版,主要是因为格式化功能用得并不多,所以笔者只学习了精简版,感兴趣的朋友可以去参考原文。

%号的左侧放置需要格式化的字符串,右侧放置对应的值,值可以是元组等等。


对精度的要求


3.2字符串方法(常用)

(1)Find():查找子串,返回子串左端的索引,没有返回-1

(2)Join():向字符串中插入,与split相反;


(3)Lower():字母转为小写,实现“不区分大小写”功能时可用。

(4)Replace():replace(str1,str2),匹配到str1置换为str2。(查找并替换功能)

(5)Split():以某个字符为分隔符,分隔字符串,默认为空格。

(6)Strip():去除某个字符两侧的空格,默认去除整个字符串两侧的空格。