字符串

一、字符串概念

1. 字符串的创建和赋值

字符串类型是 Python 里面最常见的类型。
可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它。
第一种方式:
str1 = ‘our company is westos’
第二种方式:
str2 = “our company is westos”
第三种方式:
str3 = “”“our company is westos”""
转义符号
一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符
在这里插入图片描述
三重引号
作用一:进行多行注释
Python中单行注释是#,多行注释的时候每行都写一个#,或者采用连续的三个双引号。
作用二:定义多行字符串
为避免使用转义换行符 \n,通常会用在定义SQL语句的表达式中没有变量的时候使用。
删除字符和字符串
字符串是不可变的,只能通过赋一个空字符串或者使用 del 语句来清空或者删除一个字符串
但是没有必要显式的删除字符串。定义这个字符串的代码结束时会自动释放这些字符串。

2.字符串的基本特性

连接符( + ), 重复操作符( * ),计算长度
连接操作符: 从原有字符串获得一个新的字符串
重复操作符: 创建一个包含了原有字符串的多个拷贝的新串
“*” *10 + “学生管理系统” + “*”*10
在这里插入图片描述
序列操作符(索引与切片)

  1. 索引(s[i] ):获取特定偏移的元素
  2. 索引的分类:正向索引, 反向索引
    在这里插入图片描述
  3. 切片S[i:j]提取对应的部分作为一个序列:
  4. 如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;
    扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;
  5. s[:]获取从偏移量为0到末尾之间的元素,是实现有效拷贝的一种方法;
  6. s[::-1]是实现字符串反转的一种方法;
    在这里插入图片描述

成员操作符(in ,not in)
成员操作符用于判断一个字符或者一个子串(中的字符)是否出现在另一个字符串中。出现则返回 True,否则返回 False.
在这里插入图片描述

string 模块预定义的字符串

string.ascii_lowercase #所有的小写字母(abcdefghijklmnopqrstuvwxyz)
string.ascii_uppercase #所有的大写字母(ABCDEFGHIJKLMNOPQRSTUVWXYZ)
string.ascii_letters #所有的字母(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)
string.digits #所有的数字(0123456789)
string.punctuation #所有字符(!"#$%&’()*+,-./:;<=>?@[]^_`{|}~)
string.whitespace #空格,换行符\n \t

3.字符串内建函数

字符串的判断与转换
在这里插入图片描述
title: 标题需要每一个首字母大写,e.g. Hello Python
space: 空格指的是广义的空格, e.g: \n, \t,

字符串的开头和结尾匹配
在这里插入图片描述
字符串的数据清洗
在这里插入图片描述
字符串的位置调整
在这里插入图片描述

字符串的搜索,统计
在这里插入图片描述
字符串的分离与拼接
在这里插入图片描述
其他内置方法
cmp() 根据字符串的 ASCII 码值进行比较(py3取消)
len() 返回字符串的字符数
max() and min() 返回最大或者最小的字符,(按照 ASCII 码值排列)
enumerate() 枚举对象同时列出数据和数据下标
zip() 将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

字符串相关模块
在这里插入图片描述
还有很多模块就不一一举例了。

二、实战练习

1.检测大写字母 detect-capital
给定一个单词,你需要判断单词的大写使用是否正确。
我们定义,在以下情况时,单词的大写用法是正确的:

  1.全部字母都是大写,比如“USA”。
  2.单词中所有字母都不是大写,比如“leetcode”。
  3.如果单词不知含一个字母,只有首字母大写,比如“Google”

否则,我们定义这个单词没有正确使用大写字母。
代码:

 while True:
      str = input('请输入一个单词:')
      print('单词正确')if str == str.upper() or str == str.lower() or str==str.capitalize() else print('单词错误')

运行截图:
在这里插入图片描述
2.学生出勤记录 student-attendance-record
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:

 1.‘A’:Absent,缺勤
 2.‘L’:Late,迟到
 3.‘P’:Present,到场

如果一个学生的出勤记录中不超过一个‘A’(缺勤)并且不超过俩个连续的‘L’(迟到),那么这个学生会被奖励。
你需要根据这个学生的出勤记录判断他是否会被奖励。

代码:

while True:
      str = input('请输入出勤记录:')
      print("可奖励") if str.count('A') <=1 and str.count('L') <=2 else print('不可奖励')

运行截图:
在这里插入图片描述

3.机器人能否返回原点 robot-return-to-origin
在二维平面上,有一个机器人从原点(0,0)开始。给出它的移动顺序,判断这个机器人在完成移动后是否在(0,0)处结束。移动顺序由字符串表示。字符move[i]表示其第i次移动。机器人的有效动作有R(右),L(左),U(上)和D(下)。如果机器人在完成所有动作后返回原点,则返回true。否则,返回false。
注意:机器人“面朝”的方向无关紧要。“R”将始终使机器人向右移动一次,“L”将始终向左移动等。此外每次移动机器人的移动幅度相同。
代码:

 while True:
	 str = input('请输入动作:')
	 print(True) if str.count('R') == str.count('L') and str.count('U') == str.count('D') else print(False)

运行截图:
在这里插入图片描述
4.小学生计算能力测试系统
设计一个程序,用来实现帮助小学生进行算术运算练习,它具有以下功能:提供基本算术运算(加减乘)的题目,每道题中的操作数是随机产生的,练习者根据显示的题目输入自己的答案,程序自动判断输入的答案是否正确并显示出相应的信息。最后显示正确率。
思路:
运行程序, 输入测试数字的大小范围
输入测试题目数量
任意键进入测试
系统进行测试并判断对错
系统根据得分情况进行总结,退出程序
代码:

 import random
 csopeMin = int(input('请输入测试数字最小为:'))
 csopeMax = int(input('请输入测试数字最大为:'))
 amount = int(input('请输入题目数量:'))
 type = input('请输入题目类型(有+,-,*可供选择):')
 a = 0
 b = 0
 if type == '+':
   for item in range(amount):
    x1 = random.randint(csopeMin,csopeMax)
    x2 = random.randint(csopeMin,csopeMax)
    print('请计算%s+%s'%(x1,x2))
    result = x1 + x2
    result1 = int(input('请输入答案:'))
    if result == result1:
         print("计算正确")
         a += 1
    else:
         print("计算错误,正确答案为%s"%result)
         b += 1
else:
    c = a / (a+b) * 100
    print('答题结束,正确率为:%.2f%%'%c)
else:
if type == '-':
    for item in range(amount):
        x1 = random.randint(csopeMin, csopeMax)
        x2 = random.randint(csopeMin, csopeMax)
        print('请计算%s-%s' % (x1, x2))
        result = x1 - x2
        result1 = int(input('请输入答案:'))
        if result == result1:
            print("计算正确")
            a += 1
        else:
            print("计算错误,正确答案为%s" % result)
            b += 1
    else:
        c = a / (a + b) * 100
        print('答题结束,正确率为:%.2f%%' % c)
else:
    if type == '*':
        for item in range(amount):
            x1 = random.randint(csopeMin, csopeMax)
            x2 = random.randint(csopeMin, csopeMax)
            print('请计算%s*%s' % (x1, x2))
            result = x1 * x2
            result1 = int(input('请输入答案:'))
            if result == result1:
                print("计算正确")
                a += 1
            else:
                print("计算错误,正确答案为%s" % result)
                b += 1
        else:
            c = a / (a + b) * 100
            print('答题结束,正确率为:%.2f%%' % c)
    else:
        print('题目类型错误!')

运行截图:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值