字符串类型

字符串是不可变的数据类型

索引(下标)

我们在日常生活中会遇到很多类似的情况,例如吃饭排队叫号,在学校时会有学号,工作时会有工号,这些就是一种能保证唯一准确的手段,在计算机中也是一样,它就叫索引,也叫下标,
注意:索引都是从0开始,只有有序的对象才会有索引

切片

只取字符串中某一部分的,就要切片,切片特性:顾头不顾尾
 
name = 'alisa'
print(name[:])
#运行结果:ali 只会取    的下标对应的值

步长

步长是指你取值的间隔长度,例如:
name = 'alisa'
print(name[0:5:2])#隔1个值取一个,若不写,默认1
#运行结果:aia
注意:字符串中可以倒着找

name = 'alisa'
print(name[-1:-5:-1])
#如果你是倒着数,那步长就是负数所以步长是可以控制方向的
#运行结果:asil

字符串的方法

s1 = s.capitalize() 首字母大写
s2 = s.upper() 全部大写
s3 = s.lower() 全部小写
s4 = name.title() 首字母大写,有特殊符号分割的也会大写
s.endswith('x')以什么开始
s.startswith('a') 以什么结尾
s.find('p') 通过元素查找下标,查找到没有的返回-1
s.index('p') 通过元素查找下标,若查找不到就报错
s.format 格式化输出
print('_',join(s))每个s的元素都会加个下划线
s.split('t')以括号里面的来进行分割
s.rstrip() 删除末尾空白
s.lstrip() 删除开头空白
s.strip() 删除两端空格,还会有换行#默认是删除空格\n等,若输入内容,则是清除内容
若想替换所有空格,可以用replace
s.replace('a','s',count) 替换, a 是被 s 替换的,第三个是替换的次数,默认是全部都替换
s.swapcase()括号不用内容,做到大小写转换,把原有字母进行大小写转换
s.isdigit() 判断是不是数字(判断我字符串里的内容是不是纯数字)
s.isalpha() 判断是不是汉字和字母
s.isupper()判断是否是大写
s.islower()判断是否是小写
s.isalnum()判断是不是字母和数字

字符串的定义

1单引号方式

name = 'alisa'
2双引号方式
name = "alisa"
3三引号方式(三个单引号 和三个双引号都可以)
主要用来换行
'''
?能提笔安天下,
武能上?定乾坤.
?存谋略何?胜,
古今英雄唯是君.
'''
4 单双引号混合使用
若字符串内有单引号,那最外层必须用双引号,反之亦然
str1 = "I'm alisa,what's your name?"
str2 = '我选的是"A",你呢'
若字符串内既有双引,又有单引号,则外层用三引号
str3 ='''It's "C",I have "A" and "B"。'''
5字符串的拼接
字符串可以进行加法和乘法
加法(只能是字符串之间进行,不能是不同类型的)

name = 'alisa'
name1 = 'hello,'
print(name1 + name)
运行结果:hello,alisa


乘法(字符串与数字相乘):把原来的字符串进行了10次展示

name = 'alisa'
print(name*10)
运行结果:
alisaalisaalisaalisaalisaalisaalisaalisaalisaalisa

符串的格式化

格式化输出常用参数:
%s:非常强大,可以接收任意类型的数据并转化成str类型输出。
%c:整数:将数字转换成其ASCII/unicode对应的值,(py27则只支持0-255)。
%o:将整数转换成八进制表示。
%x:将整数转换成十六进制表示。
%d:将整数、浮点数转换成 十 进制表示。
%e:将整数、浮点数转换成科学计数法(小写e)。
%E:将整数、浮点数转换成科学计数法(大写E)。
%f: 将整数、浮点数转换成浮点数表示(默认保留小数点后6位)。
%g:自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数 法,如果是科学计数则是e;)。
%G:自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数 法,如果是科学计数则是E;)。
%:当字符串中存在格式化标志时,需要用 %%表示一个百分号 注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式。
示例1

name = input("请输入姓名")
age = input("请输入年龄")
print('你认识的那个%s,今天是%s了吗'%(name,age))
示例2
name = input("请输入姓名")
age = input("请输入年龄")
print(f'你认识的那个{name},今天是{age}了吗')

示例3

name = input("请输入姓名")
age = input("请输入年龄")
print(("你认识的那个{},今天是{}了吗").format(name, age))

字符串编码

ascii 美国 256 没有中文 
一个字节  8位   
gbk 中国  
中文 2字节  16位
英文 1字节  8位
unicode 万国码 
2个字节     16位
4个字节     32位
utf-8 可变编码   
英文 1字节  8位
欧洲 2字节  16位
亚洲 3字节  24位

 
 
 
 
 
 
 

Python之路-基础数据类型之字符串的更多相关文章

  1. Python之路-基础数据类型之列表 元组

    列表的定义 列表是Python基础数据类型之一,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: lst = [1,2,'你好','num'] 列表的索引和切片 与字符串类似, ...

  2. 百万年薪python之路 -- 基础数据类型的补充

    基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...

  3. Python之路-基础数据类型之字典 集合

    字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...

  4. 百万年薪python之路 -- 基础数据类型的补充练习

    1.看代码写结果 v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v1.append(6) print(v1) print(v2) [1,2,3,4,5,6] [[1,2,3,4,5 ...

  5. python之路--基础数据类型的补充与深浅copy

    一 . join的用法 lst =['吴彦祖','谢霆锋','刘德华'] s = '_'.join(lst) print(s) # 吴彦祖_谢霆锋_刘德华 # join() "*" ...

  6. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  7. Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)

    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...

  8. python之路:数据类型初识

    python开发之路:数据类型初识 数据类型非常重要.不过我这么说吧,他不重要我还讲个屁? 好,既然有人对数据类型不了解,我就讲一讲吧.反正这东西不需要什么python代码. 数据类型我讲的很死板.. ...

  9. python变量与基础数据类型

    一.什么是变量 变量是什么?  变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用.在python中一切都是变量. 1.python变量命名的要求 1,必须有数字,字母,下划线任意组合. ...

随机推荐

  1. linq 读取xml

    xml 文件如下: <?xml version="1.0" encoding="utf-8" ?><nodes> <node> ...

  2. WPF OnApplyTemplate 不执行 或者执行滞后的疑惑

    OnApplyTemplate 不执行 平时如何开发自定义控件的 在WPF自定义控件开发的过程中遇到了这样一个问题,属性更改事件在OnApplyTemplate之前执行.我在写自定义控件的时候,喜欢通 ...

  3. Json Web Token 简介

    1.Json Web Token是干什么        简称JWT,在HTTP通信过程中,进行身份认证.       我们知道HTTP通信是无状态的,因此客户端的请求到了服务端处理完之后是无法返回给原 ...

  4. androidStudio修改包名 Android 如何修改包名(同一个手机可以跑2个eros 项目)。

    修改applicationId(gradle.properties). 2.即时同步更新过去,否则不报错

  5. stm8 全局变量定义 声明

    1.ST Visual Develop 开发环境下.h文件里面不能定义变量,要把变量定义在.C文件里面,然后在.H文件里面声明即可.补充:今天突然发现还有一种情况,变量在一个.h文件里定义后,在另外的 ...

  6. mysql 5.7以上安装遇到的问题

    参考地址:  https://blog.csdn.net/u012278016/article/details/80455439 本人在window上安装mysql 5.7版本以上的mysql,出现很 ...

  7. Android自定义控件练手——简单的时钟

    首先这应该是一个老生常谈的设计了,但是毕竟身为小白的自己都没动手做过,不动手怎么提高自己呢,所以在这梅林沉船闲暇之际,我就把我的设计流程与思路记录下来.首先来看看效果图吧: 如上图就是一个简单并没有美 ...

  8. Java反序列化漏洞详解

      Java反序列化漏洞从爆出到现在快2个月了,已有白帽子实现了jenkins,weblogic,jboss等的代码执行利用工具.本文对于Java反序列化的漏洞简述后,并对于Java反序列化的Poc进 ...

  9. http请求各种数据的接受

    一.接受请求的http数据 1.接受客户请求的数据,例如xml数据格式,代码如下: 此代码相当于服务端 public String analyzeWeixinXMLStr(HttpServletReq ...

  10. 常用宏OC

    #ifndef MacroDefinition_h #define MacroDefinition_h //-------------------获取设备大小--------------------- ...