【Python编程】四、python字符串

简介: 【Python编程】四、python字符串

☞什么是字符串

字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

a = 'hello world'
b = "abcdefg"
print(type(a))
print(type(b))

控制台显示结果为<class 'str'>, 即数据类型为str(字符串)。

字符串的特征主要有以下几个:

  • 一对引号字符串
name1 = 'Tom'
name2 = "Rose"
  • 三引号字符串
name3 = ''' Tom '''
name4 = """ Rose """
a = ''' i am Tom, 
        nice to meet you! '''
b = """ i am Rose, 
        nice to meet you! """

注意:三引号形式的字符串支持换行。

☞字符串的输入输出

#字符串的打印
print('hello world')
name = 'Tom'
print('我的名字是%s' % name)
print(f'我的名字是{name}')
#字符串输入
name = input('请输入您的名字:')
print(f'您输入的名字是{name}')
print(type(name))
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
print(type(password))

☞索引与切片

索引也叫做下标,通过索引可以快速的找到对应数据。

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。切片语法如下

序列[开始位置下标:结束位置下标:步长]

注意:

  1. 不包含结束位置下标对应的数据, 正负整数均可;
  2. 步长是选取间隔,正负整数均可,默认步长为1。

☞字符串常用方法

  • capitalize() 首字母大写 → string.capitalize()
  • lower() 全部转为小写,只能转换英文字符
  • casefold() 转为小写,可以处理特殊字符,比如α
  • center(wid, “char”) 把str宽度设置为wid并把字符串居中,两侧用字符char来填充,只能是一个字符。
  • ljust() 填充字符串,把原字符串居左
  • rjust() 填充字符串,把原字符串居右
  • zfill() 用0填充
  • count(“str”) 计算子序列在字符串中出现的次数
    count(“str”, num1, num2) 从num1到num2位置范围内子序列出现的次数,可以没有num2,也可以没有num1和num2
  • encode()
  • decode()
  • replace() 替换,可以通过参数指定替换个数
  • expandtabs() 断句 \t 空格补全
tabl = "username\temail\tpassword\nsu\t.com\t11\nsu\t.com\t11"
tabl_new = tabl.expandtabs(20)
print(tabl_new)

  • endswith(“str”) 字符串是否以str结尾
    startswith()
  • find(“str”, start, end) 在[start, end)范围内寻找子串,返回子串第一次出现的位置
  • format() 格式化,将字符串中的占位符替换为指定值,C语言sprintf
string = "I am {name}, age {ag}"
print(string)
string_new = string.format(name="hello", ag=17)
print(string_new)
string2 = "I am {0}, age {1}"
print(string2)
string_new2 = string.format(name="hello", ag=17)
print(string_new2)

  • format_map() 格式化,只能以{“name”:”hello”, “ag”:17}形式
string = "I am {name}, age {ag}"
print(string)
string_new = string.format_map({"name": "hello", "ag": 17})
print(string_new)

  • index() 寻找,找不到报错 →一般用find不用index
  • isalnum() 判断字符串是否只包含字母和数字,是返回True否则False
  • isalpha() 判断是否全是字母(包括汉字)
  • isdigit() 判断是否全是数字,包括特殊数字,类似于②,不支持中文数字
  • isidecimal() 判断是否全是数字,十进制小数(应用更多,因为我们一般判断数字并用于运算)
  • isnumeric() 判断是否全是数字,支持中文数字,比如六
  • isidentifier() 是否是标识符(字母数字下划线组成,不能以数字开头)
  • isprintable() 如果字符串中所有的字符在打印时都是可见的,则返回True,比如\t \n在打印时都是看不见的,返回False
  • isspace() 是否全是空格
  • istitle() 是否是标题(每一个单词首字母都大写)
  • title() 转换为标题
  • join() 将字符串中的每一个元素按照指定分隔符进行拼接

  • islower() 是否小写
  • lower() 转为小写
  • isupper() 是否大写
  • upper() 转为大写
  • lstrip() 从左往右,最多匹配,去除字符。不加参数去掉左边空格、\n、\t等,加参数则去掉参数所表示的字符(如果参数是字符串则匹配字符串与原字符串,匹配到的字符被去掉)。
  • rstrip() 从右往左,最多匹配,去除字符。不加参数去掉右边空格、\n、\t等,加参数则去掉参数所表示的字符(如果参数是字符串则匹配字符串与原字符串,匹配到的字符被去掉)
  • strip() 不加参数去掉两边空格、\n、\t等,加参数则去掉参数所表示的字符(如果参数是字符串则匹配字符串与原字符串,匹配到的字符被去掉)
  • maketrans()
    translate()

  • partition() 按指定字符将字符串分割为子串,只能分割为三份(匹配第一个字符,也就是从左往右匹配)
    rprtition() 从右往左匹配
  • split() 按指定字符将字符串分割为子串,默认匹配一次,可以通过参数指定分割匹配次数,但是匹配的字符丢失;
    rsplit() 指定匹配次数时,从右往左匹配;
    splitlines() 根据换行符分割字符串,参数True表示保留\n;

  • startswith() 判断字符串是否以参数指定的字符串开头
  • endwwitch()
  • swapcase() 大小写转换
  • [index] 通过索引(下标)从字符串获取序号为index的字符 -索引
  • [start:end] 获取[start, end)范围内的子串,end=-1表示到结尾 –切片
  • len() 字符串中包含多少字符(字符而不是字节,python2获取的是字节数),也可以计算列表中有几个元素
  • for循环巧用(可用于字符串、索引、切片)
string = "hello world"
for i in string:
    print(i)
  • range() 创建连续的数字,也可以指定步长
v = range(100) #python2立即创建,python3在循环时创建
for item in v #python3在此时才创建(python2中的xrange)
print(item)
# 可以通过for循环迭代取值的叫做可迭代对象iterable
  • 字符串一旦在内存中创建,不可修改,如果修改实际上是在内存中创建了一个新的字符串,因为假如你有一个字符串”abc”,它只有3个字符,假如说你把b改成bb,那么它原本的一个字节空间存不下2个字节。所以字符串一旦创建,如果修改或拼接都是重新生成一个新的字符串。
v1 = “ascdvgblmeewn”
v1.replace(‘d’, ‘*’)
v1.replace(‘a’, ‘+’)
print(v1)
v2 = “ascdvgblmeewn”
v2 = v2.replace(‘d’, ‘*’)
v2 = v2.replace(‘a’, ‘+’)
print(v2)


相关文章
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
30天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
18天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80
|
2月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
128 64
|
2月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
151 59
|
7天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
29 14
|
17天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
53 2
|
30天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
48 10
|
1月前
|
机器学习/深度学习 人工智能 Java
Python 语言:强大、灵活与高效的编程之选
本文全面介绍了 Python 编程语言,涵盖其历史、特点、应用领域及核心概念。从 1989 年由 Guido van Rossum 创立至今,Python 凭借简洁的语法和强大的功能,成为数据科学、AI、Web 开发等领域的首选语言。文章还详细探讨了 Python 的语法基础、数据结构、面向对象编程等内容,旨在帮助读者深入了解并有效利用 Python 进行编程。
|
1月前
|
机器学习/深度学习 人工智能 数据挖掘
探索Python编程的奥秘
在数字世界的海洋中,Python如同一艘灵活的帆船,引领着无数探险者穿梭于数据的波涛之中。本文将带你领略Python编程的魅力,从基础语法到实际应用,一步步揭开Python的神秘面纱。
45 12