python基础与高级特性(二):字符串(练习)

这篇博客涵盖了Python字符串的回文判断、标识符检查、IPv4验证、大写用法评估、出勤纪录奖励判断、二维平面移动路径分析以及小学生算术练习程序设计等多个实践问题。通过实例解析了各种字符串操作及其在实际场景中的应用。
摘要由CSDN通过智能技术生成

1.给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
本题中,我们将空字符串定义为有效的回文串。

import string
str = input('请输入验证信息:')
if len(str) == 0:
    print('验证成功,是回文字符串')
else:
    str = str.lower()
    cleanStr = ''
    for item in str:
        if item in string.ascii_letters +string.digits:
            cleanStr += item
    print('清洗后的字符串:', cleanStr)
    print(cleanStr == cleanStr[::-1])

在这里插入图片描述
在这里插入图片描述
2.编写一个检查 Python 有效标识符的小脚本,名字是 idcheck.py
要求:Python 标识符必须以字母或下划线开头
1). 只检查长度大于等于 2 的标识符
2). 以字母或者下划线开始
3). 后面要跟字母,下划线或者或数字

import string
identifier = input('请输入标识符:')
if len(identifier) >= 2:
    if identifier.startswith(string.ascii_letters + '_'):
        print('Error:必须以字母或者下划线开始')
    else:
        for item in identifier[1:]:
            if item not in string.ascii_letters + string.digits + '_':
                print('Error:错误的标示符')
                break
        else:
                print('%s是正确的标示符' %(identifier))
else:
    print('Error:错误的标示符')

在这里插入图片描述
3.编写一个函数来验证输入的字符串是否是有效的 IPv4 ?
1). IPv4 地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为 0 - 255, 用(".")分割。
比如,172.16.253.1;
2). IPv4 地址内的数不会以 0 开头。比如,地址 172.16.254.01 是不合法的。

    import string
IPV4 = input('请输入IPV4:').strip()
sp_IPV4 = IPV4.split('.')
if len(sp_IPV4) != 4:
    print('Error,not IPV4')
else:
    for item in sp_IPV4:
        if not 0 <= int(item) <= 255 or len(item) != 1 and item.startswith('0'):
            print('Error,not IPV4')
            break
    else:
        print('IPV4')

在这里插入图片描述
4.给定一个单词,你需要判断单词的大写使用是否正确
我们定义,在以下情况时,单词的大写用法是正确的;
1.全部字母都是大写,比如’USA’
2.单词中所有字母都不是大写,‘leetcode’
3.如果单词不只含有一个字母,只有首字母大写,比如’Google’
否则,我们定义这个单词没有正确使用大写字母。

import string
word = input('请输入单词:')
if word.isupper() or word.islower() or word.istitle():
    print('正确')
else:
    print('错误')

在这里插入图片描述
5.给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符:

‘A’ : Absent,缺勤
‘L’ : Late,迟到
‘P’ : Present,到场
如果一个学生的出勤纪录中不超过一个’A’(缺勤)并且不超过两个连续的’L’(迟到),那么这个学生会被奖赏。

你需要根据这个学生的出勤纪录判断他是否会被奖赏。

示例 1:

输入: “PPALLP”
输出: True
示例 2:

输入: “PPALLL”
输出: False

record = input('出勤记录:')
print(record.count('A')<=1 and record.count('LLL')<1)

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

示例 1:
输入: “UD”
输出: true
解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true。
示例 2:
输入: “LL”
输出: false
解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。

move = input('请输入机器人的移动顺序:')
if move.count('R') == move.count('L') and move.count('U') == move.count('D'):
    print('True')
else:
    print('Flase')

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

import random
def compute(start = 1, end = 10, count = 10):
    print('小学生计算能力测试系统'.center(50,'*'))
    true_count = 0
    for item in range(count):
        print('第%d道:' %(item+1), end='')
        num1 = random.randint(start, end)
        num2 = random.randint(start, end)
        operator = random.choice(['+', '-', '*',])
        print('%s %s %s = ' %(num1, operator, num2),end='')
        in_result = int(input())
        true_result = eval('%s %s %s' %(num1, operator, num2))
        if in_result == true_result:
            print('正确')
            true_count += 1
        else:
            print('错误')
    print('此次测试结束,正确率: %.2f%%' %((true_count/count)*100))

if __name__ == '__main__':
    # start = int(input("运算数的开始值:"))
    # end = int(input("运算数的结束值:"))
    # count = int(input("请输入测试题目数量:"))
    compute()

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值