Python基础语法(字符串变量)案例详解

本文献给Python初学者,相关python语法均已整理,欢迎阅读参考,一起进步

文章目录

一.python中字符串的格式

  • 如下定义的变量a,存储的是数字类型的值
a = 100
  • 如下定义的变量b,存储的是字符串类型的值
b = "hello"
    或者
b = 'hello'
  • 双引号或者单引号中的数据,就是字符串

二.python中字符串输出

name = 'Tom'
position = '讲师'
address = '北京市'

print('--------------------------------------------------')
print("姓名:%s" % name)
print("职位:%s" % position)
print("公司地址:%s" % address)
print('--------------------------------------------------')
--------------------------------------------------
姓名: itheima
职位: 讲师
公司地址: 北京市
--------------------------------------------------

三.python中字符串输入

之前在学习input的时候,通过它能够完成从键盘获取数据,然后保存到指定的变量中;

  • 注意:input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存
userName = input('请输入用户名:')
print("用户名为:%s" % userName)

password = input('请输入密码:')
print("密码为:%s" % password)
请输入用户名:Tom
用户名为:Tom
请输入密码:123
密码为:123

四.下标和切片

  • 下标索引
  • 所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间
    《Python基础语法(字符串变量)案例详解》
  • 字符串中"下标"的使用
  • 列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。
  • 如果有字符串:name = ‘abcdef’,在内存中的实际存储如下:
    《Python基础语法(字符串变量)案例详解》
  • 如果想取出部分字符,那么可以通过下标的方法,(注意python中下标从 0 开始)
name = 'abcdef'

print(name[0])
print(name[1])
print(name[2])
a
b
c
  • 切片
  • 切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
  • 切片的语法:[起始:结束:步长]
  • 注意:选取的区间从”起始”位开始,到”结束”位的前一位结束(不包含结束位本身),步长表示选取间隔。
name = 'abcdef'

print(name[0:3])  # 取 下标0~2 的字符
abc
  • Demo
name = 'abcdef'

print(name[0:3])  # 取 下标0~2 的字符
# abc

print(name[0:-1])  
# abcde

print(name[0:-2])  
# abcd

print(name[:2])  
# ab

print(name[::2])  
# ace

print(name[1:5:2])  
#bd
  • 面试案例
# 索引是通过下标取某一个元素
# 切片是通过下标去某一段元素

s = 'Hello World!'

print(s[4])

print(s)

print(s[:]) # 取出所有元素(没有起始位和结束位之分),默认步长为1

print(s[1:]) # 从下标为1开始,取出 后面所有的元素(没有结束位)

print(s[:5])  # 从起始位置开始,取到 下标为5的前一个元素(不包括结束位本身)

print(s[:-1]) # 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)

print(s[-4:-1]) # 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)

print(s[1:5:2]) # 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)

# python 字符串快速逆置
print(s[::-1])  # 从后向前,按步长为1进行取值
o
Hello World!
Hello World!
ello World!
Hello
Hello World
rld
el
!dlroW olleH

想一想 (面试题)给定一个字符串aStr, 请反转字符串

五.字符串常见操作

如有字符串mystr = ‘hello world itcast and itcastcpp’,以下是常见的操作

  • <1>find
  • 检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
mystr = 'hello world itcast and itcastcpp'
print(mystr.find('world'))
# 6 输出的为第一个字母的索引位子

print(mystr.find('k'))
# -1 没有则返回-1

print(mystr.find('world',0,10))
# -1 指定在索引在0到10的位置找 没有则返回-1
  • <2>index
  • 跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
mystr = 'hello world itcast and itcastcpp'

print(mystr.find('world',0,10))
# -1 指定在索引在0到10的位置找 没有则返回-1

print(mystr.index('world',0,10))
#异常 指定在索引在0到10的位置找 
-1
Traceback (most recent call last):
  File "D:/Phython/study/venv/Include/hello.py", line 6, in <module>
    print(mystr.index('world',0,10))
ValueError: substring not found

Process finished with exit code 1
  • <3>count
  • 返回 str在start和end之间 在 mystr里面出现的次数
mystr = 'hello world '

print(mystr.count('l'))
# 3 返回l出现的次数
  • <4>replace
  • 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
mystr = "hello world ha ha"

print(mystr.replace("ha", "Ha",  1))
# 替换字符串 规定次数一次
hello world Ha ha
  • <5>split
  • 以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
mystr = "hello world ha ha"

print(mystr.split(" ", 1) )
# 替换字符串 规定次数一次
#['hello', 'world ha ha']

print(mystr.split(" ", 2) )
# 替换字符串 规定次数2次
#['hello', 'world', 'ha ha']
  • <6>capitalize
  • 把字符串的第一个字符大写
mystr = "hello world ha ha"

print(mystr.capitalize())
#Hello world ha ha
Hello world ha ha
  • <7>title
  • 把字符串的每个单词首字母大写
mystr = "hello world ha ha"

print(mystr.title())
Hello World Ha Ha
  • <8>startswith
  • 检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False
mystr = "hello world ha ha"

print(mystr.startswith("hello"))
True
  • <9>endswith
  • 检查字符串是否以obj结束,如果是返回True,否则返回 False.
# 语法
mystr.endswith(obj)
mystr = "hello world ha ha"

print(mystr.endswith("ha"))

print(mystr.endswith("hello"))
True
False
  • <10>lower
  • 转换 mystr 中所有大写字符为小写
mystr = "Hello World Ha Ha"

print(mystr.lower())
#hello world ha ha

print(mystr.upper())
#HELLO WORLD HA HA
hello world ha ha
HELLO WORLD HA HA
  • <11>upper
  • 转换 mystr 中的小写字母为大写
mystr = "Hello World Ha Ha"

print(mystr.lower())
#hello world ha ha

print(mystr.upper())
#HELLO WORLD HA HA
hello world ha ha
HELLO WORLD HA HA
  • <12>ljust
  • 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
    《Python基础语法(字符串变量)案例详解》
  • <13>rjust
  • 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
    《Python基础语法(字符串变量)案例详解》
  • <14>center
  • 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
    《Python基础语法(字符串变量)案例详解》
  • <15>lstrip
  • 删除 mystr 左边的空白字符
    《Python基础语法(字符串变量)案例详解》
  • <16>rstrip
  • 删除 mystr 字符串末尾的空白字符
    《Python基础语法(字符串变量)案例详解》
  • <17>strip
  • 删除mystr字符串两端的空白字符
mystr = " Hello "

print(mystr.strip())
Hello
  • <18>rfind
  • 类似于 find()函数,不过是从右边开始查找.
mystr = "Hello"

print(mystr.rfind("o"))
4
  • <19>rindex
  • 类似于 index(),不过是从右边开始.
mystr = "Hello"

print(mystr.rindex("o"))
4
  • <20>partition
  • 把mystr以str分割成三部分,str前,str和str后
mystr = "Hello World"

print(mystr.partition("e"))
('H', 'e', 'llo World')
  • <21>rpartition
  • 类似于 partition()函数,不过是从右边开始.
mystr = "Hello World"

print(mystr.rpartition("o"))
('Hello W', 'o', 'rld')
  • <22>splitlines
  • 按照行分隔,返回一个包含各行作为元素的列表
mystr = "Hello \n World"

print(mystr.splitlines())
['Hello ', ' World']
  • <23>isalpha
  • 如果 mystr 所有字符都是字母 则返回 True,否则返回 False
mystr = "hello"
mystr1 = "123"

print(mystr.isalpha())
print(mystr1.isalpha())
True
False
  • <24>isdigit
  • 如果 mystr 只包含数字则返回 True 否则返回 False.
mystr = "hello"
mystr1 = "123"

print(mystr.isdigit() )
print(mystr1.isdigit() )
False
True
  • <25>isalnum
  • 如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
mystr = "hello123"
mystr1 = "12 3"

print(mystr.isalnum())
print(mystr1.isalnum())
True
False
  • <26>isspace
  • 如果 mystr 中只包含空格,则返回 True,否则返回 False.
mystr = "hello123"
mystr1 = "12 3"
mystr2 = " "

print(mystr.isspace() )
print(mystr1.isspace() )
print(mystr2.isspace() )
False
False
True
  • <27>join
  • mystr 中每个元素后面插入str,构造出一个新的字符串
str = " "
str1 = "-"
li = ["my","name","is","Tom"]
print(str.join(li))
print(str1.join(li))
my name is Tom
my-name-is-Tom
  • The best investment is in yourself
    《Python基础语法(字符串变量)案例详解》
  • 2020.03.31 记录辰兮的第42篇博客
    原文作者:辰兮要努力
    原文地址: https://blog.csdn.net/weixin_45393094/article/details/105197911
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞