一.字符串的格式化:
假如你的女朋友不回信息,你要批评她,假如格式为“我叫xxx,今年xx岁,住在xxx,我不回信息,还是大呆瓜”。
代码如下:
name = input("请输入您的姓名:")
age = int(input("请输入您的年龄:"))
address = input("请输入您的地址:")
print(f"我叫{name},今年{age}岁,住在{address},我不回信息,还是大呆瓜")
便完成了字符串的格式化。
知识点:
使用{}来进行占位,在3.5及以上的pycharm中可在“”前加上f,然后在{}中将变量写入即可。
依然对age年龄转化为整形形式。
此外以下还有其他的代码格式可供选择:
1.
name = input("请输入您的姓名:")
age = int(input("请输入您的年龄:"))
address = input("请输入您的地址:")
print("我叫{},今年{}岁,住在{},我不回信息,还是大呆瓜".format(name,age,address))
区别:
依然为{}来占位,在“”的后面使用.format(),括号中需要按顺序写入变量。
2.
name = input("请输入您的姓名:")
age = int(input("请输入您的年龄:"))
address = input("请输入您的地址:")
print("我叫%s,今年%d岁,住在%s,我不回信息,还是大呆瓜" % (name,age,address))
区别:
这里使用%s,%d来进行占位,与C语言有类似之处,接着在“”后空格+%+空格+()的形式,再按顺序写入变量名,但1与2都过于繁琐,而不被推荐使用。
二.索引和切片
索引:
在字符串中提取一个字符。
eg:
s = "我喜欢睡大觉"
print(s[4])
由于在程序中都是从0开始数的,所以这里的4并不是字符串中的第四个字,而是第五个字,得到的则是:
切片:
指的是在一个字符串中截取一个片段。
例如我们要截取一个字符串中的第四个到第七个,则:
s = "我超级喜欢睡大觉"
print(s[3:7])
注意:
我们在这里使用的格式为s[3:7],表示截取的是从4-6,那为什么后面是7呢?
这是因为切片所得到的区间为左闭右开,得不到最右边的字符。
但是如果要截取的是第一三五个时,我们采取的格式为s[a:b:c],多出来的c实际上在这里指步调,类似于等差数列,同时步调也可指明截取的方向,如果为负,则会从右到左截取。代码如下:
s = "我超级喜欢睡大觉"
print(s[3:7:2])
但是如果我们要将整个字符串倒着输出时,应该怎么办呢?
s = "我超级喜欢睡大觉"
print(s[::-1])
在这里我们前一个冒号两边没有进行输入,则表示整个截取是从头到尾的。
eg:如果我们要截取倒数第一到倒数第四之间的字符的话,我们只需要在数字前面增加一个符号,就表示倒数的意思。
s = "我超级喜欢睡大觉"
print(s[-1:-5:-1])
也依然遵循左闭右开的原则,在此便完成了例题中的要求。
三.常用操作
将字符串中的大小写进行转换。
在这里我们需要了解:
.capitalize() #字符串的首字母大写
.upper() #每个字母都大写
.title() #每个字母的首字母为大写
.lower() #将每个字母的小写
具体操作如下:
s = "python"
s1 = s.capitalize()
print(s1)
注意:
我们需再创造一个变量,来存储新获得的字符串,在打印时,直接打印新的字符串即可。
其应有的格式为 .upper()。
例题:
假设我们需要写一个验证码来让用户进行输入验证,不论大小写均为正确:
verify_vode = "aBc2"
user_input = input(f"请输入验证码{verify_vode}:")
if verify_vode.upper() == user_input.upper():
print("验证正确")
else:
print("验证失败")
注意:
我们将用户输入的验证码和验证码都转化为大写来比较,嵌套进if语句,如果相等,那么就会显示输入验证正确。
四.切割和替换
strip()可以用来对字符串两段多出来的空格进行删除。
我们写一个实际的例子来对其进行解释。
我们依然来写一个账号登陆的程序:
#用户登录系统。
ZH="Mony"
MM="123456"
a = input("请输入您的账号:").strip()
b = input("请输入您的密码:").strip()
if a == ZH and b == MM:
print("登录成功")
else :
print("登录失败")
但在这里我们如果不用.strip()的话,就会出现空格报错的情况出现,就像下面这样:
#用户登录系统。
ZH="Mony"
MM="123456"
a = input("请输入您的账号:")
b = input("请输入您的密码:")
if a == ZH and b == MM:
print("登录成功")
else :
print("登录失败")
当我们在输入结束时如果输入加空格的时候,就会显示登录失败,所以我们要考虑到这种情况,
字符串的替换
replace(old, new),可以用来替换字符,new与old指要把谁替换成谁。
例如我们要将一个字符串中的空格全部删掉,代买如下:
s = "I have a dream "
s1 = s.replace(" ","")
print(s1)
字符串的切割
split("xxx"),常被用作切割,在xxx的位置跳入谁就从谁开始切割。例如:
a = "asd sadf fewf e ef"
a1 = a.split(" ")
print(a1)
注意:
图中的[ ]为列表形式,我们在后面会提及,在这里只需知道切割的内容会被放在列表中。
在这里我们用空格开始分割,所以将它分为了五部分。使用其他进行分割也可,根据实际情况进行选择。
五.查找和判断
查找:
如果要在一个字符串中找到某一个字符串或者字符,那么我们可以用以下的几种方法:
1.
s = "我是吴彦祖"
s1 = s.find("吴彦祖")
print(s1)
就可以知道这个这个字符在第三个位置。
但是当没找到时就会出现:
s = "我是吴彦祖"
s1 = s.find("吴彦祖1")
print(s1)
当没有找到时,就会输出-1这个值。
2.
s = "我是吴彦祖"
s1 = s.index("吴彦祖")
print(s1)
如果使用index的话,若找到则结果和上一条代码的结果是一致的,如果没有找到会直接进行报错。
判断:
startswith(),来进行判断。
name = input("请输入您的名字:")
if name.startswith("张"):
print("你姓张")
else:
print("输入有误...")
sidigit(),来判断是否为整数:
money = input("请输入您的余额:")
if money.isdigit():
money = int(money)
print("富哥")
else:
print("胡输的啥,再不要讨厌")
如果输入的为数字则输出的就是if语句后面的内容,反之则为else后面的内容。
in 和 not in:
英文翻译,意为在....里,和不在...里。
s = "我是超级无敌暴龙战士"
for name in s:
print("超"in name )
将字符串里的字符依次进行输出,符合条件的输出则为true,不符合条件的则为false
s = "我是超级无敌暴龙战士"
for name in s:
print("超"not in name )
六.输出字符串的长度:
通常使用len()函数来进行操作。
假设我们要得到s的字符串长度。
s = "我是大帅哥"
print(len(s))
便可以得出我们需要的结果。