一、字符串

特性:字符串本身不可修改,除非字符串变量重新赋值。Python3中所有字符串都是Unicode字符串,支持中文。

>>> name  = "Jonathan"

>>> name = "Jonathan" + "Ni"

>>>print(name)

Jonathan Ni  # name 被重新赋值,并不是改变原先字符串 "Joanthan"

字符串运算符

实例 a = "Hello"; b = "Python"

操作符 描述 实例
+ 字符串连接 a + b输出结果 HelloPython
[] 通过索引获取字符串中字符 a[1]输出结果 e
[:] 截取字符串中一部分 a[0:2]输出结果 He
in 成员运算符 - 如果字符串中包含给定的字符返回 True H in a 输出结果 True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True N not a 输出结果 True
格式化字符串 “%s World!"%a 输出结果 Hello World!

字符常用方法

print("jonathan".capitalize()) # 首字母大写,其余小写

print("JonaThan".casefold()) # 转为小写字符,lower() 只是ASCII编码大写转小写

print("Jonathan".center(20, "*")) # 居中,两侧填充指定字符到指定宽度

print("Jonathan".count("an")) # 统计指定字符出现次数

print("Jonathan".endswith("a")) # 判断是否以指定字符结尾

print("Joanthan".startswith("Jo")) # 判断是否以指定字符开始

print("Jonathan".replace("J", "j")) # 替换指定字符

msg = "My name is {) # 格式化

print(msg)

二、列表

列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。

更改本身与字符串对比分析

定义列表

names = []

通过下标访问列表中的元素,下标从0开始计数

names[0] = "Jonathan"   # 修改元素

names.append("Jim")   >>>      ["Jonathan", "Alex", "Tom", "Catherine", "Jim"]    # 在列表最后附件元素

names.insert(2, "Linda")  >>>  ["Jonathan", "Alex", "Linda",  "Tom", "Catherine", "Jim"]     # 在下标为2的地方插入元素,其他元素后移动

names.remove("Linda")   >>>  ["Jonathan", "Alex", "Tom", "Catherine", "Jim"]   # 删除第一个检索到的元素

del names[4]    >>>   ["Jonathan", "Alex", "Tom", "Catherine"]   # 按下标删除元素

names.index(   # 返回下标

names.sort()    >>> ["Alex", "Catherine", "Jonathan", "Tom"]     #  按照ASCII正序排列

names.reverse()   >>>   ["Tom", "Jonathan", "Catherine", "Alex"]  # 元素反转

names.count("Tom")   >>>  1  # 返回出现次数

 

 

三、元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

names = ()

它只有2个方法,一个是count,一个是index

四、字典

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

构成:字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = { key1 : value1, key2 : value2 }

特性:

1) 键必须是唯一的,但值则不必

2) 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组

3) 字典是无序的

4)字典是另一种可变容器模型,且可存储任意类型对象

5) 字典内部构成 Hash算法,查询效率高

使用字典:

import copy

# 定义字典

names = {

"stu1101": "001",

"stu1102": "002",

"stu1103": "003"

}

# 查找

print(names)  # 字典无序,每次输出结果顺序不同

print(names["stu1101"])   # 把相应的键放入方括弧

print(names["stu1104"])   # 不存在该键名时,返回KeyError: 'stu1104'

print(names.get("stu1104","000")) # 不存在该键名时,返回默认值 '000'

# 修改,定位键名则修改,无该键值则添加该键值对

names["stu1101"] = {

"name": "Jack",

,

"address": "Beijing China"

}

print(names["stu1101"]["name"]

# 删除 pop()  del

print(names.pop(names["1103"])  # 删除键名为"1103"的键值对元素,并返回该值 "003"

del names["stu1102"]

# 复制

credit_card1 = {

  "name": "Jonathan"

  "card": {

    "id": "1101",

    

  }

}

credit_card2 = credit_card1  # 前复制

credit_card3 = copy.deepcopy(credit_card2) #深复制

credit_card2["name"] = "Rose"     # credit_card2的"name"更新为"Rose",credit_card1的"name"保持不变

credit_card3["name"] = "Linda"   # credit_card2的"name"更新为"Linda",credit_card1的"name"保持不变

credit_card1[   # credit_card1的"balance" 与 credit_card2的"balance" 同步变化

credit_card2[   # credit_card2的"balance" 与 credit_card1的"balance" 同步变化

credit_card3[    # credit_card3的"balance" 与 credit_card1的"balance" 是两份不同的变量空间

五、文件操作

1、IO简介

IO - Input/Output,也就是输入和输出。程序和运行时数据都是在内存中驻留,由CPU来执行,通常需要与磁盘、网络等进行数据交换,就

需要IO接口。

IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但是只能单向流动。

Input Stream就是数据从外面(磁盘、网络)流进内存,Output Stream就是数据从内存流到外面去。对于浏览网页来说,

浏览器和服务器之间至少需要建立两根水管,才可以既能发数据,又能收数据。

由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题。比如要把100M的数据写入磁盘,

CPU输出100M的数据只需要0.01秒,可是磁盘要接收这100M数据可能需要10秒,有两种办法可以解决:

  • 第一种是CPU等着,程序暂停执行后续代码,等100M的数据在10秒后写入磁盘,再接着往下执行,这种模式称为同步IO

  • 另一种是CPU不等待,只是告诉磁盘写入,后续代码可以立刻接着执行,这种模式称为异步IO

总结:

使用异步IO来编写程序性能会远远高于同步IO,但是异步IO的缺点是编程模型复杂。

操作IO的能力都是由操作系统提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来方便使用,Python也是。

2、文件操作

在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,

所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),

  • 通过操作系统提供的接口从这个文件对象中读取数据(读文件)
  • 把数据写入这个文件对象(写文件)

对文件操作流程

1) 打开文件,得到文件句柄并赋值给一个变量

2) 通过句柄对文件进行操作

3) 关闭文件

f = open("lyrics", encoding="utf-8", mode="r")     # 打开文件

first_line = f.readline()  # 读一行

print("first line:",first_line) # 打印该行

print("我是分割线".center(,"*"))  # 读取剩下的所有内容,文件大时不要用

data = f.read()  # 打印文件

print(data)

f.close() # 关闭文件

打开文件的模式有:

r, 只读模式 (默认)

w,只写模式 (不可读;不存在则创建;存在则删除内容)

a,追加模式 (可读; 不存在则创建;存在则只追加内容)

"+" 表示可以同时读写某个文件

r+,可读写文件。(可读;可写;可追加)

w+,写读

a+,同a

"b"表示处理二进制文件 (如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

rb、wb、ab

Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作的更多相关文章

  1. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  2. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  3. python字符串/列表/元组/字典之间的相互转换(5)

    一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...

  4. python字符串 列表 元组 字典相关操作函数总结

    1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...

  5. python 字符串,列表,元组,字典相互转换

    1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回:<type 'str'> {'age': 7, 'n ...

  6. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  7. Python数据类型-布尔/数字/字符串/列表/元组/字典/集合

    代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...

  8. Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法

    对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_len ...

  9. Python笔记【5】_字符串&列表&元组&字典之间转换学习

    #!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #数据类型之间的转换 Str='www.baid ...

随机推荐

  1. 简单使用DESeq做差异分析

    简单使用DESeq做差异分析 Posted: 五月 06, 2017  Under: Transcriptomics  By Kai  no Comments DESeq这个R包主要针对count d ...

  2. Vsphere初试——使用Vsphere client

    好不容易安装好ESXi之后,就要安装一个Vsphere Client,为什么要安装这个东东.使用过vmware workstation的人都知道,安装完就可以添加虚拟机,但是ESXi要通过Vspher ...

  3. TCHAR函数查询

    https://blog.csdn.net/is2120/article/details/27542927

  4. PHP使用swoole来实现实时异步任务队列

    转载来自第七星尘的技术博客的<PHP使用swoole来实现实时异步任务队列> 关于异步任务队列 用户打开了我们的网站.他要做的就是勾选需要发邮件的代理商列表,然后把结算邮件发出去.假如我们 ...

  5. 知名APP(支付宝、微信、花瓣等)首页设计技巧及原型实例讲解

    APP首页设计对APP自身来说是至关重要的,一款优秀的APP产品,其首页设计不仅需要清晰的展示产品核心功能,给用户创造良好的用户体验,而且还需要展示公司的品牌形象,提升在用户心中的品牌认知度.今天,就 ...

  6. Exception 异常 输出的各个方法的区别

    try{ System.out.println(1/0); }catch(Exception e){ //System.out.println(e+""); //对象+字符串 = ...

  7. 使用Hadoop API 压缩HDFS文件

    下篇解压缩:使用Hadoop API 解压缩 HDFS文件 起因: 集群磁盘剩余空间不足. 删除了存储在HDFS上的,一定时间之前的中间结果,发现并不能释放太多空间,查看计算业务,发现,每天的日志存在 ...

  8. com/mysql/jdbc/Driver : Unsupported major.minor version 52.0

    解决方案: 1.jdk7+老版5.0驱动com/mysql/jdbc/Driver 2.jdk8+新版6.0驱动com/mysql/cj/jdbc/Driver

  9. Java设计模式——结构型模式

    Java设计模式中共有7种结构型模式:适配器模式.装饰模式.代理模式.外观模式.桥接模式.组合模式.享元模式.其中对象的适配器模式是各种模式的起源,其关系如下面的图:1.适配器模式 适配器模式将某个类 ...

  10. GDI基础(1):绘制线条和图形

    1. 绘制一个像素点:SetPixel(). 绘制直线:MoveTo(),LineTo(). 绘制多个首尾相连的线:Polyline(). 绘制矩形:FrameRect(),Rectangle(),F ...