小白从零开始学编程(五)--python数据类型--字符串

前言

从2020年3月份开始,计划写一系列文档--《小白从零开始学编程》,记录自己从0开始学习的一些东西。

  • 第一个系列:python,计划从安装、环境搭建、基本语法、到利用Django和Flask两个当前最热的web框架完成一个小的项目
  • 第二个系列:可能会选择Go语言,也可能会选择Vue.js。具体情况待定,拭目以待吧。。。

基本概念

  • 字符串时候Python中最常见的数据类型,通过引号间包含字符串的方式就可以创建一个字符串数据,因为python中没有字符这个数据类型,所以单引号和双引号的作用是一样的,但是要保证引号不能混用。
  • 字符串在python中是不可变类型,也即是说要改变字符串的元素需要新建一个新的字符串
  • 字符串是由独立的字符组成的,这些字符可以通过切片操作顺序的访问
  • 在Python3的字符串使用Unicode,直接支持多语言。牢记仅使用UTF-8编码

基本操作

字符串的创建和赋值

创建字符串非常的简单,可以直接用引号包裹,也可以用str()工厂方法创建

In [1]: a="hello world" # 双引号创建
In [2]: print(a)
hello world

In [3]: b='hello python' # 单引号创建
In [4]: print(b)
hello python

In [9]: s = str([1,2,3,4])  # str()方法创建
In [10]: s
Out[10]: '[1, 2, 3, 4]'

访问字符串的值

用方括号加一个或者多于一个索引的方式来获得字符

In [11]: a="hello world"
In [12]: a
Out[12]: 'hello world'
In [13]: a[0]
Out[13]: 'h'

In [14]: a[1:5]
Out[14]: 'ello'

In [15]: a[6:]
Out[15]: 'world'

修改字符串

前面说了字符串是不可修改的序列数据类型,要想修改字符串需要新创建新的变量,也就是说需要在内存中开辟新的内存空间来存储变量,新变量的名字可以和原来变量名字一样,也可以不一样

In [16]: a="hello world"
In [18]: a = a[:6] + 'python'  # 将world 修改为 python
In [19]: a
Out[19]: 'hello python'

删除字符串中的字符&&删除字符串

字符串不可改变,同样不能被删除,如果想删除其中一个字符,只能提取出字符串中需要的部分,赋值给新的字符串,
删除整个字符串的操作可以通过给字符串赋空值或者del语句来操作,del语句会将变量在内存中删除,在大多数操作中没有必要用del语句来操作,python也有垃圾回收机制,在程序代码运行结束时,会自动释放内存

In [20]: a
Out[20]: 'hello python'
In [21]: a=a[:4] + a[5:] # 删除字符
In [22]: a
Out[22]: 'hell python'

In [25]: a=''  # 给变量赋于空字符串
In [26]: a
Out[26]: ''

In [27]: del a  # del语句删除a变量,再想查看a的值的时候就会报错了,因为从内存中已经删除
In [28]: a
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-28-3f786850e387> in <module>
----> 1 a

NameError: name 'a' is not defined

字符串和操作赋

序列操作符切片

我们以字符串demoSring=‘abcd‘为例子进行演示

以下表格,
第一行:正索引
第二行:字符串中的各个字符
第三行:负索引

0 1 2 3
a b c d
-4 -3 -2 -1
  • 正向索引演示
In [29]: demoSring='abcd'
In [30]: len(demoSring) # 计算字符串的长度
Out[30]: 4

In [31]: demoSring[0]
Out[31]: 'a'
In [32]: demoSring[1]
Out[32]: 'b'
In [33]: demoSring[0:2] # 含头不含尾,包含第0个元素,不包含第2个元素
Out[33]: 'ab'
  • 反向索引
In [34]: -len(demoSring)
Out[34]: -4

In [35]: demoSring[-1]
Out[35]: 'd'

In [36]: demoSring[-2]
Out[36]: 'c'

In [37]: demoSring[-4:-1]
Out[37]: 'abc'

切片操作,记住一句话就是含头不含尾

成员操作符

成员操作符 包括 :“in”、 “not in”用来判断一个字符或者一个子串是否出现在另一个字符串中,如果出现返回True,如果不在返回False

In [38]: 'bc' in 'abcd'
Out[38]: True
In [40]: 'e' in 'abcd'
Out[40]: False

In [41]: 'e' not in 'abcd'
Out[41]: True

连接符

连接符 ‘+’,可以将多个字符串进行拼接,获取新的字符串

In [42]: a = 'abcd'+'hello'
In [43]: a
Out[43]: 'abcdhello'

格式化操作符

格式化操作符 %

In [44]: 'Hello, %s' % 'world'
Out[44]: 'Hello, world'

常见的占位符

占位符 含义
%d 整数
%s 字符串
%f 浮点数
%x 十六进制数

如果不确定应该用什么,就用%s,它会把任何数据类型转换为字符串

字符串的特性

特殊字符串

一个反斜杠加一个单字符就可以表示一个特殊字符,通常不会打印在控制台上
常用的特殊字符串有“\n”表示换行,“\t”表示tab键,其余还有\0,\a,\b,\v,\f,\r等一些特殊字符,可以查看官方文档

三引号

在上面说了单引号和双引号,python中还有一个三引号,三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符、以及其他特殊字符。
三引号常用在给类名或者函数添加注释。

字符串不变性

前面一直字符串不可改变,其实是字符串在同一个内存地址中不可修改,每次修改或者变更字符串时,都会开辟新的内存空间,虽然值是一样的,但是其在内存中的地址是不一样的。

小结

字符串是无论在哪种语言中都是极其重要的一个数据结构,其在python中的一些重要特性一定要牢牢记住、记准确。牢记仅使用UTF-8编码。

原文地址:https://www.cnblogs.com/codeBang/p/12539139.html

时间: 2024-11-14 21:15:10

小白从零开始学编程(五)--python数据类型--字符串的相关文章

小白从零开始学编程--python安装与环境搭建

前言 从2020年3月份开始,计划写一系列文档--<小白从零开始学编程>,记录自己从0开始学习的一些东西. 第一个系列:python,计划从安装.环境搭建.基本语法.到利用Django和Flask两个当前最热的web框架完成一个小的项目 第二个系列:可能会选择Go语言,也可能会选择Vue.js.具体情况待定,拭目以待吧... python安装与配置 python2 在2020年初开始已经不再维护,所以学习只讨论python3 windows环境 下载python3安装包 到官方网站下载选择合适

6 Python 数据类型—字符串

字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. var1 = 'Hello World!' var2 = "Python Runoob" Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. Python访问子字符串,可以使用方括号来截取字符串 1 var1 = 'Hello World!' 2 var2 = "Python Ru

从零开始学编程系列汇总

github 地址:https://github.com/justjavac/Programming-Alpha-To-Omega 「从零开始」系列 从零开始写个编译器吧系列 (知乎专栏) 从零开始写一个简单的操作系统 (伯乐在线) 从零开始写 JavaScript 框架 (图灵社区) 从零开始写 jQuery 框架 (蓝色理想 ) 从零开始 nodejs 系列文章 (粉丝日志) 从零开始编写网络游戏 ( 英特尔? 开发人员专区) 从零开始编写自己的 C# 框架 (博客园) 如何从零开始写一个

Solidity编程 五 之 数据类型

Solidity是一种静态类型语言,需要再编译期间指定每个变量(静态和局部)的类型.Solidity提供了几种基本类型,可以通过基本类型组合成复杂类型.另外,在带有操作符的表达式中,类型之间会相互影响. 数值类型 下面介绍数值类型,为什么叫数据类型,因为这些变量类型都需要传入一个值,例如:在函数变量或是赋值,数值类型都会进行拷贝. 布尔型 bool:  值为 true 或是 false 操作: ! 逻辑非 && 逻辑与 ||  逻辑或 == 相等 !=  不等 || 和 &&

python数据类型-字符串常用操作

这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 = "hello bei jing " name2 = '''hello shang hai haha''' python中的字符串一旦声明,是不能进行更改的,如下: #字符串为不可变变量,即不能通过对某一位置重新赋值改变内容 name = 'hello' name[0] = 'k' #通

python数据类型-字符串

1.字符串 字符串看似简单,但能以多种方式引用.字符串就是一系列的字符,在python中,用单引号或者双引号括起来的都是字符串.例如: 这种单双引号互用,可以让我们在字符串使用过程中更加灵活多变,适用于多种场景.例如: python中提供了许多的内置函数来处理字符串,下面我们看看常用的字符串处理方法: 1.1 使用内置函数方法修改字符串的大小写:title().upper().lower() 调用title()方法将每个单词的首字母转成大写后输出结果如下图: 在这个实例中,小写的字符串先存储在f

Java从零开始学十五(继承)

一.继承作用 继承使用复用以前的代码非常容易,能够大大的缩短开发周期,降低开发成本,同时增加程序的易维护性 继承使重一个类A能够直接使用另外一个类B的属性和方法的一种途径 类A可以有自己的属性和方法 二.继承实现 类的继承格式 在Java中使用extends关键字完成类的继承关系,操作格式: class 父类{} // 定义父类 class 子类 extends 父类{} // 使用extends关键字实现继承 package com.pb.person; /* * 父类 */ public c

30岁开始学编程晚吗?

二哥,说出来不怕你笑话,我和你年纪差不多.之前是干别的,但有点编程的基础,最近想转行程序员,不知道晚不晚,你能不能给我一些建议,或者说有没有一些攻略可以参考. 这是上个月一个读者小郑私信我的问题,我一直置顶着,想不清楚该怎么回答他.最近又遇到三四个读者问我类似的问题,不得不认真思考一下了. 我年纪多大了呢?老读者都心里有数,我就不直说了(反正标题已经直说了,手动狗头). 30 岁开始学编程,从目前人的平均寿命上来看,显然是不晚的.假如拿一天来对比人的一生,30 岁,无非就是睡了个懒觉.再从心智的

从零开始学Python第八周:网络编程基础(socket)

Socket网络编程 一,Socket编程 (1)Socket方法介绍 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可. 套接字是一个双向的通信信道的端点.套接字可能在沟通过程,进程之间在同一台机器上,或在不同的计算机之间的进程 要创建一个套接字,必须使用Socket模块的socket.socket()方法 在socket模块中的一般语法: s = socket.