Python学习02_字符串

字符串

1.什么是字符串

  • 用引号引起来的一串字符

用引号来创建字符串

  • 单引号
  • 双引号
  • 三单引号
  • 三双引号
name = "Hangzhou"
area = 'Gongshu'
history = "5000"
famous_person = """苏轼,许仙,白居易"""
capticalof = '''吴越,南宋'''
sent = "I'm lilei"
sent2 = '"he is my brother",he said'
print(sent)
print(sent2)

I'm lilei
"he is my brother",he said
  • 单引号和双引号使用时要注意匹配关系,且不可以换行。
  • 如果要换行,使用三单引号或者三双引号。
pm = '''wolai
wozou
'''
print(pm)

wolai
wozou

2.字符串的运算及常见操作

拼接

a = "hello"
b = ",python"
print(a+b)

hello,python

拼接要基于同一种数据类型

重复

a = "city college"
print(a*3)

city collegecity collegecity college

索引(偏移)[],切片[ : ],[: :]

正向序号从0开始,逆向从-1开始

sr = "python"
print(sr[5])
print(sr[-1])

n
n
sr = "python"
for i in range(len(sr)):
    print(sr[i], end=' ')
print()
for i in sr:
    print(i ,end=' ') 
    
p y t h o n 
p y t h o n 
  • 切片
sr = "life is short,you need python"
print(len(sr))
print(sr[1:4])

29
ife
sr = "life is short,you need python"
print(len(sr))
print(sr[1:4:2])

29
ie
sr = "life is short,you need python"
print(len(sr))
print(sr[::-1])

29
nohtyp deen uoy,trohs si efil

大小写转换

sr.lower():转小写
sr.upper():转大写
sr.swapcase():大小写互换
sr.title():转为标题的形式
sr.capitalize():首字母大写

验证码确认

sr = input("请输入:")
sr2 = "Abcd"
if sr.lower() == sr2.lower():
    print("成功")
else:
    print("失败")

请输入:abcd
成功

字符串的格式输出对齐

sr.center([len],[填充符号]) ,居中对齐

sr = "life is short,you need python"
print(sr.center(41, '#'))

######life is short,you need python######

sr.ljust([len],[填充符号]) , 局左对齐

print(sr.ljust(41, '#'))

life is short,you need python############

sr.rjust([len],[填充符号]) , 局右对齐

print(sr.rjust(41, '#'))

############life is short,you need python

sr.zfill( [len] ) , 居右对齐,默认填充0

print(sr.zfill(41))

000000000000life is short,you need python

删除指定字符

sr.strip() , 默认删除左右两端换行和空,()内可以填指定字符

sr = "\n\t#####life is short,you need python.#####\t\n"
print(sr.strip())

#####life is short,you need python.#####
sr = "#####life is short,you need python.#####"
print(sr.strip("#"))

life is short,you need python.

sr.lstrip() , 删除左端字符

sr.rstrip() , 删除右端字符

计数

sr.count 计数
sr = "life is short,you need python."
print(sr.count('o')) #计数查找元素的个数

3
sr = "life is short,you need python."
print(sr.count('o', 9, 15)) #在指定索引范围中查找“o”次数

1

字符串搜索定位和替换

sr.find()
sr.index()
sr.rindex(),从右往左查找
sr.replace([现有],[替新])
sr = "life is short,you need python."
print(sr.find("e"))  #查找元素并返回第一次出现的元素的索引值

3
sr = "life is short,you need python."
print(sr.find("e",19,25)) #范围内查找元素并返回第一次出现的元素的索引值;若查找不到则返回-1

19
sr = "life is short,you need python."
print(sr.index('e',19 , 25)) #功能类似,但是若查找不到,则报错

19
sr = "life is short,you need python."
print(sr.replace('you need','I use'))

life is short,I use python.
sr = "life is short,you need python."
print(sr.replace('t','T',1)) #只替换一个"t"

life is shorT,you need python.

字符串条件判断

α \alpha α

β \beta β

isalnum(), 判断字符串由字母或数字组成
isalpha(), 仅有字母
isdigit(), 仅有数字
sr = 'abcef123456'
print(sr.isalnum())
print(sr.isalpha())
print(sr.isdigit())

True
False
False

制表符的转化

sr.expandtabs()

字符串的分割

join(), 将指定字符插入到元素之间
split(), 以指定字符分割字符串,并去除该字符
partition(), 以指定字符分割字符串并保留该字符
sr = "life is short,you need python."
print('+'.join(sr))
li = ['I', 'Love', 'python']
print(''.join(li))

l+i+f+e+ +i+s+ +s+h+o+r+t+,+y+o+u+ +n+e+e+d+ +p+y+t+h+o+n+.
ILovepython
sr = "life is short,you need python."
print(sr.split('o')) #结果是一个列表

['life is sh', 'rt,y', 'u need pyth', 'n.']
>>> sr = "life is short,you need python."
>>> print(sr.split('o',2))
['life is sh', 'rt,y', 'u need python.']
>>> sr = "life is short,you need python."
>>> print(sr.partition('o'))
('life is sh', 'o', 'rt,you need python.')

ASCII值和字符的转化

ASCII:美国信息交换标准代码

chr() digit-->alpha
ord() alpha-->digit
import string
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase
      
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
for i in range(8):
    print(oct(i), end=" ")
    
0o0 0o1 0o2 0o3 0o4 0o5 0o6 0o7 
for i in range(16):
    print(hex(i),end=" ")
    
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 
print('%o' % 17) #十进制转八进制
print('%x' % 17) #十进制转十六进制

21
11
  • 设计“过7游戏”的程序,打印1-100之间除了含7和7的倍数之外的所有数字
for i in range(1, 101):
    if i % 7 == 0 or i // 10 == 7 or i % 10 == 7:
        continue
    else:
        print(i)
  • 编写程序用户登录程序且仅有三次机会。(if和 for)
user = input("请输入用户名:")
password = input("请输入密码:")
ruser = "12345"
rpassword = "12345"
for i in range(1, 3):
    if user == ruser and password == rpassword:
        print('登录成功')
    else:
        user = input("请输入用户名:")
        password = input("请输入密码:")
    i += 1
  • 编写程序实现,判断一串字符串是否为有效变量名。
import keyword
list1 = keyword.kwlist
sr = input('输入变量名')
if 'a' <= sr[0] <= 'z' or 'A' <= sr[0] <= 'Z' or sr[0] == "_":
    if sr not in list1:
        for j in sr:
            if 'a' <= j <= 'z' or 'A' <= j <= 'Z' or '0' <= j <= '9' or j == "_":
                print("有效的变量名")
                break
            else:
                print("无效")
    else:
        print("无效")
else:
    print("无效")
  • 最多猜十次数字游戏,猜测范围1-100,根据input内容提示猜大或者小,如果猜中,结束循环。
import random
num1 = int(input('猜测的数字:'))
num2 = random.randint(1,100)
for i in range(1,10):
    if num1 == num2:
        print('猜对了')
        break
    elif num1 > num2:
        print("大了")
        num1 = int(input('猜测的数字:'))
        i += 1
    else:
        print('小了')
        num1 = int(input('猜测的数字:'))
        i += 1
  • 使用while循环实现输出2-3+4-5+6…+100的和
i=2
j = 1
sum1 = 0
k = 1
while k < 100:
    sum1 += i
    i = (i+j)*j
    j = -j
    k += 1
print(sum1)
  • 使用循环实现九九乘法表。
for i in range(1, 10):
    for j in range(1, i + 1):
        print("{}*{} = {:<4}".format(i, j, i * j), end=" ")
    print("")
  • 已知列表li = [22478,24066,23398,38498],利用字符串拼接及遍历,输出‘城市学院’
list1 = [22478, 24066, 23398, 38498]
list2 = []
for i in list1:
    list2 = [chr(i)] + list2
sr = ''.join(list2)
print(sr[::-1])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值