字符串
什么是字符串
-
用引号引起来的一串字符
-
用引号来创建字符串
- 单引号 #不允许换行
- 双引号 #不允许换行
- 三单引号
- 三双引号
字符串的运算及常见操作
(1)拼接
name = 'Hangzhou'
area = 'Gongshu'
print(name + area) #HangzhouGongshu
平拼接基于同一种数据类型
(2)重复
a = '嘤嘤嘤'
print(a * 3) #嘤嘤嘤嘤嘤嘤嘤嘤嘤
(3)索引
name = 'Hangzhou'
area = 'Gongshu'
print(len(name))
for i in range(len(name)):
print(name[i],end=' ')
name = 'Hangzhou'
area = 'Gongshu'
print(len(name))
print(name[::-1]) #倒序输出
(4)大小写转换
- name.lower():转小写
- name.upper():转大写
- name.swapcase():大小写互换
- name.title():转为标题形式
- name.capitalize():首字母大写
(5)对齐
- name.center 居中
- name.ljust 左对齐
- name.rjust 右对齐
- name.zfill 原字符串右对齐,前面填充0
(6)删
-
name = ’ robete.k.adern’
-
name.strip() 去掉空格和换行符
-
name.strip(‘xx’) 去掉某个字符串
-
name.lstrip() 去掉左边的空格和换行符
-
name.rstrip() 去掉右边的空格和换行符
(7)查
-
name.count(‘x’) 查找某个字符在字符串里面出现的次数
-
name.count(‘x’,1,10) 查找某个字符在指定范围内出现的次数
-
name.find(‘x’) 找到这个字符返回下标,多个时返回第一个;不存在的字符返回-1
-
name.index(‘x’) 找到这个字符返回下标,多个时返回第一个;不存在的字符报错
- name.rindex(‘x’) 从右向左查找
(8)改
- name.replace(oldstr, newstr) 字符串替换
- name.replace(oldstr,newstr,2) 替换前两个旧字符
(9)字符串条件判断
- S.startswith(prefix[,start[,end]]) #是否以prefix开头
- S.endswith(suffix[,start[,end]]) #以suffix结尾
- S.isalnum() #是否全是字母和数字,并至少有一个字符
- S.isalpha() #是否全是字母,并至少有一个字符
- S.isdigit() #是否全是数字,并至少有一个字符
- S.isspace() #是否全是空白字符,并至少有一个字符
- S.islower() #S中的字母是否全是小写
- S.isupper() #S中的字母是否便是大写
- S.istitle() #S是否是首字母大写的
(10)制表符的转化
(11)字符串的分割变换
- ‘,’.join(slit) 用逗号连接slit 变成一个字符串,slit 可以是字符,列表,字典(可迭代的对象)
list1=['I','Love','You']
print(' '.join(list1)) #I Love You
-
name.split() 默认是按照空格分割‘’
-
name.split(’,’) 按照逗号分割
- name.split(‘o’,2) 用前两个o分割,后面保留
(12)ASCII值和字符的转化
for i in range(ord('a'),ord('z')+1):
print(chr(i), end=' ') #a b c d e f g h i j k l m n o p q r s t u v w x y z
拓展
string模块
import string
print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase) #abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase) #ABCDEFGHIJKLMNOPQRSTUVWXYZ
练习
-
设计“过7游戏”,打印出1-100之间除了含7和7的倍数之外的所有数字。
for i in range(1, 101): if i % 7 == 0 or '7' in str(i): continue print(i)
-
编写程序用户登录程序且仅有三次机会。(if和for)
id = 123 password = 456 for i in range(3): id_input = int(input('请输入账号:')) password_input = int(input('请输入密码:')) #getpass.getpass('')#不显示明文 if id_input == id and password_input == password: print('登陆成功') break else: print('账号或密码输入错误') else: print('输入错误三次,登录失败')
-
编写程序实现,判断一串字符串是否为有效变量名。
import string alpha=string.ascii_letters+'_' nums=string.digits myinput= input('输入字符串:') if len(myinput)>1: if myinput[0] not in alpha: print('Invaild value name!') else: for other in myinput[1:]: if other not in alpha+nums: print('invalid value name.') break else: print('有效') else: print('长度不够')
-
最多猜10次数字的游戏,猜测范围1~100,根据input内容提示猜大或者猜小,如果猜中,结束循环。
import random number = random.randint(1, 100) for i in range(10): number_input = int(input('输入你猜的数字:')) if number_input > number: print('大了') if number_input < number: print('小了') if number_input == number: print('猜对了') break
-
使用while循环实现输出2-3+4-5+6…+100的和。
i = 2 s = 0 flag = 1 while i <= 100: s = s + i * flag i += 1 flag = -flag print(s)
-
使用循环实现九九乘法表。
for i in range(1, 10): for j in range(1, i + 1): print(j, '*', i, '=', i * j, end=' ') print()
-
已知列表li=[22478,24066,23398,38498],利用字符串拼接及遍历,输出结果“城市学院”。
li=[22478,24066,23398,38498] for i in li: print(chr(i),end='')