字符串

字符串

什么是字符串

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

  • 用引号来创建字符串

    • 单引号 #不允许换行
    • 双引号 #不允许换行
    • 三单引号
    • 三双引号

字符串的运算及常见操作

(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='')
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值