Python - 字符串
2018-03-10 本文已影响0人
不给时间回忆
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号。
说明:在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会
导致Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误。所以字符串中要使用撇号的时候,字符串最好用双引号括起来
字符串的创建
str = 'hello world'
##等价于
str = "hello world"
字符串的常用方法调用
str1 = 'hello,world!'
print(len(str1))#长度
print(str1.capitalize())#改变大写字母
print(str1.upper())#转换成大写字母 lower是转换成小写字母
print(str1.title())#每个单词的首字母大写
print(str1)
print(str1.find('or'))#寻找'or'是否在字符串str1中
print(str1.find('shit'))
# 与find类似但找不到子串时会引发异常
# print(str1.index('or'))
# print(str1.index('shit'))
print(str1.startswith('He'))#字符串是否以'He'开头
print(str1.startswith('hel'))
print(str1.endswith('!'))
print(str1.center(50, '*'))#字符串居中处理
print(str1.rjust(50, ' '))#字符串右对齐
str2 = 'abc123456'
print(str2[2])#字符串切片
print(str2[2:5])
print(str2[-1:-3:-1])#字符串倒序输出
# 检查字符串是否由数字构成
print(str2.isdigit()) # False
# 检查字符串是否以字母构成
print(str2.isalpha()) # False
# 检查字符串是否以数字和字母构成
print(str2.isalnum()) # True)
str3 = ' jackfrued@126.com '
print(str3)
print(str3.strip())#删除多余的空格 lstrip():删除开头空格
#要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中
练习:打印滚动字幕
import os
import time
def word():
s = '欢迎来到简书。。。。。。'
while True:
#清除输出的内容
os.system('cls')
print(s)
#休眠0.5s
time.sleep(0.5)
s = s[1:] + s[0]
# temp = s[1]
# for n in range(len(s) - 1):
# s[n] = s[n + 1]
# s[len(s) - 1] = temp
# print(s)
练习:随机生成验证码
from random import randint
#函数,随机验证码,长度指定,大小写字母和数字,
def code(n):
cod = ''
for _ in range(n):
num = randint(65, 123)
if 65 <= num <= 90:
cod += chr(num)
elif 97 <= num <= 122:
cod += chr(num)
else:
cod += str(randint(1, 9))
return cod
#等价于
def code1(code_len=4):
"""
生成不同长度的验证码
:param code_len: 验证码的长度
:return: 随机生成指定长度的大小写字母和数字的验证码
"""
all_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
chars_len = len(all_chars) - 1
cod = ''
if code_len > 0:
for _ in range(code_len):
num = randint(0, chars_len)
cod += all_chars[num]
return cod
else:
return None
取出文件后缀名
def get_suffix(filename, hos = False):
"""
获取文件后缀名
:param filename: 文件的名字
:param hos:取文件后缀名的时候是否要"."
:return:返回文件后缀名
"""
pos = filename.rfind(".")
if 0 < pos < len(filename) - 1:
index = pos if hos else (pos + 1)
return filename[index : ]
else:
return ''
if __name__ == '__main__':
print(get_suffix("hello.jpg"))
print(get_suffix("hello.c"))
print(get_suffix("hello.jpg", True))
print(get_suffix(".abc"))
print(get_suffix("abc."))
练习:判断字符是否为回文字符
def str_palindrome(s):
low = 0
high = len(s) - 1
while high > low:
if s[low] != s[high]:
return False
low += 1
high -= 1
return True
练习:判断回文数
def is_palindrome(num):
"""
判断一个数是不是回文数
:param num: 一个非负整数
:return: 是回文数返回True
"""
temp = num
re_data = 0
while temp > 0:
re_data = re_data * 10 + temp % 10
temp //= 10
return re_data == num and pri(num)