Python基础(一)_bytearray.maketrans()、bytes.maketrans()、str.maketr-程序员宅基地

技术标签: Python基础  Python  

Python基础
1.基础知识
1.函数计算
通过变量来引用函数
foo = math.sqrt
foo(4)
cmath函数用于计算复数
2.str、repr、``比较

在Python3中已经不再使用反引号了
str函数它会把值转换为合理形式的字符串,以便用户可以理解;
repr函数它会创建一个字符串,以合法的Python表达式的形式来表示值。

3.原始字符串
r'都结束了佛;'\,./fs'
对立面的字符串不会做任何转义,但是原始字符串最后一个字符不能是反斜线,除非你对反斜线进行转义
4.input、raw_input区别

python2中的input会把输入的字符串当成一个代码来执行
Python 3中只有input函数 等价于 python2中的raw_input函数

2.列表和元组

主要区别:列表可以修改,元组则不能。

1通用序列操作:

索引、分片、加、乘、in、还有计算长度、找出最大元素和最小元素的内建函数
分片

>>>a=[1,2,3,4,5,6,7,8,9,10]
>>>a[5::-2]
[6, 4, 2]
>>>a[:5:-2]
[10, 8]


两种相同类型的序列才能进行连接操作

[1,2,3] + [4,5,6]
'Hello' + 'world!'

>>>'test'*5
'testtesttesttesttest'
>>> [12]*5
[12, 12, 12, 12, 12]

长度、最小值和最大值
len、min、max

2.list操作
字符串转列表
>>> list('Hello')
['H', 'e', 'l', 'l', 'o']
列表转字符串
>>> ''.join(['a','t','t','u'])
'attu'

改变列表:元素赋值
x[1]=2
改变列表:删除元素
del x[2]
改变列表:分片赋值

ex1.
>>> name = list('Perl')
>>> name[2:] = list('ar')
>>> name
['P', 'e', 'a', 'r']
ex2.
>>> name = list('Perl')
>>> name[1:]=list('python')
>>> name
['P', 'p', 'y', 't', 'h', 'o', 'n']
ex3.
>>> numbers=[1,5]
>>> numbers[1:1]=[2,3,4]
>>> numbers
[1, 2, 3, 4, 5]
ex4.
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers[1:4]=[]
>>> numbers
[1, 5]

列表方法
append count extend index insert pop remove reverse sort cmp(x,y)
pop是唯一一个既能修改列表又能返回元素值得列表方法
cmp/key/reverse参数都可以用于sort函数

3.元组操作

tuple = (‘apple’, ‘bannana’, ‘grape’, ‘orange’)
当元组只有一个元素时,正确的写法为 tuple =(‘apple’,)

tuple 将一个序列作为参数并把它转换为元组。
tuple([1,2,3]) tuple(‘abc’)

3.使用字符串

字符串都是不可变的。
字符串格式化操作符: %

1.字符串格式化

基本的转换说明符,按一定的顺序至关重要。
(1)%字符 标记转换说明符开始
(2)转换标志
+ 表示在转换值之前要加上正负号
- 表示左对齐
0 表示转换值若位数不够则用0填充
(3)最小字段宽度: 转换后字符串至少应该具有该指定的宽度。
如果是*,则宽度从值元组中读取。
(4)点(.)后跟精度值: 如果转换是实数,精度值就表示出现在小数点后的位数;如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。

>>> print('%-10.2f' % pi)
3.12 
左对齐 宽度为10 小数点后两位
2.字符串方法

字符串一些有用的字符串和常量:
string.digits:包含数字0~9的字符串
string.letters:包含所有字母(大写或小写)的字符串
(python3中移除了letters,该使用string.ascii_letters)
string.lowercase:包含所有小写字母的字符串
string.printable:包含所有可打印字符的字符串
string.punctuation:包含所有标点的字符串
string.uppercase:包含所有大写字母的字符串

一部分方法:
find:返回子串所在位置的最左端索引。没有找到则返回-1
join:用来连接序列中的元素
lower:返回字符串的小写字母版
replace:返回某字符串的所有匹配项均被替换之后得到字符串。
split:用来将字符串分割成序列
strip:返回去除两侧(不包括内部)空格的字符串
translate:和replace方法类似,不同是它只处理单个字符。优势在于可以同时进行多个替换,有些时候比replace效率要高得多。
Python3.4已经没有string.maketrans()了,取而代之的是内建函数:
bytearray.maketrans()、bytes.maketrans()、str.maketrans()

4.字典:当索引不好用时
1.字典的创建

方法一:

 person = {"username":"john","age":18}

方法二:

 person = dict(username='john',age=18)
2.字典的基本操作

len(d):返回字典的键值对的长度。
d[k]:获取k这个key对应的值。
d[k] = v:设置键为k的值为v,如果字典中不存在键为k的这一项,那么自动的添加进去。
del d[k]:删除d这个字典中键为k的这一项数据。
k in d:检查d这个字典中是否包含键为k的这一项。(字典中查找的是键,而不是值)
表达式v in l(l为列表)则是用来查找值。
字典中的键可以是任意的不可变类型,比如:浮点类型、整形、长整形、字符串或者元组。

3.字典的常用方法

clear:清空字典所有的key、value

person = {'username':'john','age':18}
a.clear()
print a

get:访问字典中那个键对应的那个值。这个方法不会抛出异常而是返回None。

person = {'username':'john','age':18}
username = person.get('username')
print username

has_key:判断某个键是否存在字典中。相当于k in d在Python3中这个方法不存在,所以最好使用in操作符。
pop:用来获得对应于给定键的值,然后将这个键盘和值的项从字典中删除。会返回这个值。

person = {'username':'john','age':18}
person.pop('username')

popitem:随机的移除字典中的一项。因为字典是无序的。

update:用一个字典更新另外一个字典,若有相同的键则会覆盖。

 a = {'url':'http://www.python.org/','title':"python"}
 b = {"url":"http://www.google.com/",'name':"google"}
 a.update(b)
 print a

未完待续…(持续更新)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36261644/article/details/88651965

智能推荐

linux 使用 navicat 报错的各种问题_linux 安装navicat 提示报错-程序员宅基地

文章浏览阅读1.1k次。我是凝思系统,使用的一些系统库可能比较旧吧,容易报错,记录一下解决过程查阅资料是 glib 版本的问题[Solved]navicat report error after update system / Applications & Desktop Environments / Arch Linux Forums我用的是 glib 的 2.68.4 分支,旧的版本有些符号有问题https://github.com/GNOME/glib/tree/2.68.4参照 1_04_GLib库入门与实践_GLi_linux 安装navicat 提示报错

【Unity3D游戏开发实战】Unity3D实现休闲类游戏《2048》——算法、源代码_unity小游戏2048源码-程序员宅基地

文章浏览阅读1w次,点赞29次,收藏133次。推荐阅读CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客QQ群:1040082875大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。一、前言最近有粉丝要参加游戏创作大赛,问我需要准备学习什么知识,以及参加比赛的注意事项:参加这类比赛是非常有好处的,不仅提高了技术,也增长了见识。因为是兴趣驱动学习,在完善自己心爱游戏的过程中,要不断的去学习,不断的提高自己。更能在这个过程中找到志同道合的好朋友。那今天就._unity小游戏2048源码

【python】Open3D,Write PLY failed解决方法_write pcd failed: unable to generate header.-程序员宅基地

文章浏览阅读6.5k次。写了一个简单的函数,将三维点云(ndarray)保存为.ply文件:def save_points_as_ply(points, ply_path): """ 将点云保存为.ply文件,保存成功会打印'ply_path 已保存' :param points: ndarray, (-1,3) :param ply_path: str,'xxx/xxxx.ply' """ pcd = o3d.geometry.PointCloud() pcd.point_write pcd failed: unable to generate header.

详解 Android Views 元素的 layout_weight 属性-程序员宅基地

文章浏览阅读75次。所有View(视图)元素中都有一个XML属性android:layout_weight,其值为0,1,2,3...等整数值。使用了之后,其对应界面中的元素比例就会发生变化,变大或者变小。layout_weight属性其实就是一个元素重要度的属性,用于在线性布局中为不同的view元素设置不同的重要度。  所有的视图都有一个layout_weight值,其默认值为0,表示视图多大就占据..._android view获取当前的layout_with 的值

hosts文件修改后无法保存问题_linux hosts文件无法保存-程序员宅基地

文章浏览阅读8.6k次,点赞11次,收藏14次。hosts文件在windows目录下的位置(我的是win10系统,其他系统大同小异)C:\Windows\system32\drivers\etc\hostslinux系统hosts位置/etc/hostsLinux系统一般来说linux系统出现无法修改的情况是比较少的,基本没有,只要你处于root权限下是都可以修改的,因为root默认是有rwx权限的如果不能修改,r..._linux hosts文件无法保存

Java中自定义异常的两个小例子_public int getlength(){return length}-程序员宅基地

文章浏览阅读962次。Java 异常处理异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。异常发生的原因有很多,通常包含以下几..._public int getlength(){return length}

随便推点

机器学习概述-程序员宅基地

文章浏览阅读5.2k次,点赞6次,收藏80次。机器学习是一种人工智能技术,通过对数据的学习和分析,让计算机系统自动提高其性能。简而言之,机器学习是一种从数据中学习规律和模式的方法,通过数据来预测、分类或者决策。_机器学习

操作系统安全---实验三:Windows7操作系统安全_操作系统的基本安全设置实验总结-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏39次。目录一、实验目的及要求二、实验原理三、实验环境四、实验步骤及内容4.1账户与口令4.2审核与日志4.3安全模板五、实验总结六、分析与思考一、实验目的及要求了解Windows账户与密码的安全策略设置,掌握用户和用户组的权限管理、审核,以及日志的启用,并学会使用安全模版来分析配置计算机。二、实验原理Windows系列是目前世界上使用用户最多的桌面操作系统。由于历史原因,Windows的很多用户都直接以管理员权限运行系统,对计算机安全构成很大隐患。从Wi..._操作系统的基本安全设置实验总结

Python + Selenium自动化测试 -- 自定义Log类_selenium python 创建log类-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏15次。本文用日志来记录我们测试脚本做的事情,其实最好的办法是写事件监听(对于小白的我,暂时不会,先从日志学起)。 下面写一个日之类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。 目标输出效果: 解决思路: 1. 封装Log类,类名为Logger; 2. 在Logger类中创建记录器logger; 3. 创建一个handler,用于写入日志文件,写到磁盘;再创建一个handler,_selenium python 创建log类

canal 整合 springboot_canalboot-程序员宅基地

文章浏览阅读632次。mysql 开启bin_logvi /etc/my.cnf末尾增加如下配置log_bin=mysql-bin binlog-format=ROW #选择row模式server-id = 1expire_logs_days=5 #日志过期时间为5天 重启mysql [5.7]service mysqld restart 修改canal 配置vi canal/conf/canal.properties#唯一标识 新增canal.id =123 _canalboot

零基础HTML教程(14)--hr:黄昏的地平线_html水平线-程序员宅基地

文章浏览阅读1w次,点赞11次,收藏13次。本文目录1. 水平线的概念2. 水平线的用法3. 小结1. 水平线的概念HTML中有一个比较特别的标签,叫做水平线,写作<hr>。该标签可以在网页上显示一条横线,一般用来分隔不同的网页内容。2. 水平线的用法使用方法很简单,在需要分割的地方,添加一个<hr>标签即可。例如:<!DOCTYPE html><html><head> <title>水平线实例</title> <meta c_html水平线

python查看已安装包的版本_python 如何查看networks的版本-程序员宅基地

文章浏览阅读4k次,点赞7次,收藏9次。pip freeze就不要说了,当你安装1000个包的时候就不会用这种蠢办法。第一种办法,打开终端/CMDpip freeze | findstr numpy这是windows下的,numpy只是个例子,要查什么自己改pip freeze | grep numpylinux下的第二种方法,python里去看。打开python命令行界面。一般来说包的版本都会用一个.__versio..._python 如何查看networks的版本