6-2、Python 数据类型-字符串

简介: 学习Python 数据类型-字符串。

Python字符串介绍:存储类型,python字符串类型的转换,字符串输入和输出,字符串的拼接、字符串下标,字符串切片,字符串常见操作,字符串格式化

存储方式


整型在内存中占一个字节,字符串不管中间有多少内容都要单独存储

类型的转换


Int将字符串转换成整型

Str将整型转换成字符串

>>> num = '100'
>>> type(num)
<class 'str'>
>>> int(num)   # 转换为int类型输出,并不是改变它的实际类型
100
>>> type(int(num))
<class 'int'>
>>> num
'100'
>>> num = 'abc' # 只有数字的字符串可以转换为整型
>>> int(num)
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    int(num)
ValueError: invalid literal for int() with base 10: 'abc'
>>> 
>>> num = 100
>>> type(num)
<class 'int'>
>>> str(num)
'100'
>>> num
100
>>> num = str(num) # 转换为字符串在赋值给num
>>> num
'100'
>>> 

字符串输入和输出

>>> name = 'jack'
>>> sex = '男'
>>> age = 18
>>> print("你的姓名是:%s"%name)
你的姓名是:jack
>>> print("性别:%s"%sex)
性别:男
>>> print("年龄:%d"%age)
年龄:18
>>> username = input("请输入用户名:")
请输入用户名:jack
>>> password = input("请输入密码:")
请输入密码:123456
>>> print("用户名: %s"%username)
用户名: jack
>>> print("密码:%s"%password)
密码:123456
>>> 

字符串拼接


1)字符串相加 2)字符串格式化

>>> a = 'ja'
>>> b = 'ck'
>>> c = a + b # 当+号两边是str字符串时,为拼接
>>> c
'jack'
>>> d =100
>>> e = 200
>>> f = d + e  # 当+号两边都是int数字时,为相加求和
>>> f
300
>>> g = '===%s==='%(a+b)
>>> g
'===jack==='
>>> 

字符串下标**


name = “abcdef”,如何取出c值?如何取出最后-一个值?

>>> name = 'abcdef'
>>> name[0]
'a'
>>> name[2]
'c'
>>> name[5]
'f'
>>> name[6]
Traceback (most recent call last):
  File "<pyshell#43>", line 1, in <module>
    name[6]
IndexError: string index out of range  # 字符串越界,只要超出了范围不管从左取还是从右取
>>> 
>>> len(name) # len 求字符串长度函数
6
>>> len(name)-1
5
>>> name[len(name)-1]
'f'
>>> name[-1] # -1 是从右往左取
'f'
>>> name[-2]
'e'
>>> name[-7]
Traceback (most recent call last):
  File "<pyshell#49>", line 1, in <module>
    name[-7]
IndexError: string index out of range
>>> 

字符串切片**(得到子字符串)


字符串是不可以修改的,所以对子字符串是只能读不能写


name =“abcdefABCDEF"如何取出ced值? name逆序输出,怎么办?

>>> name='abcdefABCDEF'
>>> name[2:5]  #第3个到第5个字符
'cde'
>>> name[2:]
'cdefABCDEF'
>>> name[2::2] # 起始位置: 终止位置: 步长:
'ceACE'
>>> name[::2]
'aceACE'
>>> name[1:10:2] # 起始位置: 终止位置: 步长:
'bdfBD'
>>> name[-1::-1]
'FEDCBAfedcba'
>>> name[::-1] # 步长控制字符串取的方向
'FEDCBAfedcba'
>>>  


字符串常见操作


1)find 查找

>>> mystr='hello world jack and tomjack'
>>> mystr.find('jack') # 查找当前第一次出现字符串的的位置
12
>>> mystr.rfind('jack') #查找当前最后一次出现字符串的位置
24
>>> mystr.find('jr')  # 查找不存在字符串的会返回一个:-1
-1
>>>

2)index

>>> mystr.index('jack')
12
>>> mystr.rindex('jack')
24
>>> mystr.index('jr') # index查找不存在的字符串 会报错
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    mystr.index('jr')
ValueError: substring not found
>>> 

3) replace 替换

>>> mystr='hello world jack and tomjack'
>>> mystr.replace('world','WORLD')
'hello WORLD jack and tomjack'
>>> mystr.replace('jack','JACK')
'hello world JACK and tomJACK'
>>> mystr.replace('jack','JACK',1) #参数1 替换一次
'hello world JACK and tomjack'
>>> mystr.replace('jack','JACK',2)
'hello world JACK and tomJACK'
>>> mystr.replace('jack','JACK',3) # 没有报错把前两个替换了
'hello world JACK and tomJACK'
>>> mystr=mystr.replace('jack','JACK',2)
>>> mystr
'hello world JACK and tomJACK'

4) split 分割成字符串列表

>>> mystr='hello world JACK and tomJACK'
>>> mystr.split(' ')
['hello', 'world', 'JACK', 'and', 'tomJACK']
>>> mystr.split('JACK')
['hello world ', ' and tom', '']
>>> 

5) startswith 返回一个布尔值

>>> mystr='hello world jack and tom'
>>> mystr
'hello world jack and tom'
>>> mystr.split(' ')
['hello', 'world', 'jack', 'and', 'tom']
>>> mystr.startswith('hello')
True
>>> mystr.startswith('helloa')
False
>>> 

6) endswith

>>> mystr='hello world jack and tom'
>>> mystr.endswith('tom')
True
>>> mystr.endswith('t')
False
>>> 

7 ) lower 将大写转换为小写

>>> name = 'JACK'
>>> name.lower()
'jack'
>>> 

8) upper 将小写转换为大写

>>> name = 'tom'
>>> name.upper()
'TOM'
>>> mys = 'tom123'
>>> mys.upper()
'TOM123'
>>> 
>>> name = 'tom'
>>> name.title()  # title 将单词的首字母大写
'Tom'
>>> 

9) strip 去空格

>>> a= '  abcde  '
>>> a.strip()
'abcde'
>>> 


10) isalpha 是否为26个字母


判断所有的字符串是否是26个字母,包括大小写字母

>>> name = 'jack'
>>> name.isalpha()
True
>>>
>>> name = 'jack1'
>>> name.isalpha()
False
>>> 

11) isdigit 是否为全部10个数字字符


判断是否所有的字符都是0-9的字符,如果一个不是,返回False,否则返回True

>>> num = '123'
>>> num.isdigit()
True
>>> num1 = '123a'
>>> num1.isdigit()
False
>>> 

12 ) isalnum 是否为26个字母或者10个数字字符

>>> num2 = 'abc123'
>>> num2.isalnum()
True
>>> num3  = 'abc123$'
>>> num3.isalnum()
False
>>> 

字符串格式化


字符串format()格式化方法.

前面说过%百分符格式化方法。Python官 方最近逐步在推广str.format()方 法的格式化。

tpl = “i am {}, age {}, {}”.format(“'seven”, 18, ‘alex’)

>>> mystr = 'i am %s age:%d sex:%s'%('jack',18,'男')
>>> mystr
'i am jack age:18 sex:男'
>>> 
>>> mystr = 'i am {} age:{} sex:{}'.format('jack',18,'男')
>>> mystr
'i am jack age:18 sex:男'
>>> 


相关文章
|
24天前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
119 64
|
15天前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
38 5
|
20天前
|
Python
Python 中一些常见的数据类型
Python 中一些常见的数据类型
70 8
|
19天前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
24 7
|
26天前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
32 6
|
26天前
|
Python
Python中不同数据类型之间如何进行转换?
Python中不同数据类型之间如何进行转换?
25 6
|
26天前
|
存储 开发者 Python
Python 的数据类型
Python 的数据类型
32 6
|
2月前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
66 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
2月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
60 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python 编程入门:理解变量、数据类型和基本运算
【10月更文挑战第43天】在编程的海洋中,Python是一艘易于驾驭的小船。本文将带你启航,探索Python编程的基础:变量的声明与使用、丰富的数据类型以及如何通过基本运算符来操作它们。我们将从浅显易懂的例子出发,逐步深入到代码示例,确保即使是零基础的读者也能跟上步伐。准备好了吗?让我们开始吧!
26 0
下一篇
DataWorks