作业:字典、字符串

该代码示例展示了如何使用Python进行字符串操作,如提取奇数位字符、检查用户名合法性以及处理包含特定字符的字符串。此外,还涉及到了对用户输入的验证,如长度限制、字符组成检查以及首字符要求。最后,实现了查找子串位置、找公共字符、处理学生信息列表等功能。
摘要由CSDN通过智能技术生成
  1. 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)

例如: 输入**'abcd1234 ' ** 输出**'bd24'**

str1 = 'abcd1234'
str2 = ''
for i in range(1,len(str1),2):
    str2 += str1[i]
print(str2)
  1. 输入用户名,判断用户名是否合法(用户名长度6~10位)

name = input('请输入用户名')
if 6 <= len(name) <= 10:
    print('合法')
else:
    print('不合法')
  1. 输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)

例如: 'abc' — 合法 '123' — 合法 ‘abc123a’ — 合法

name = input('请输入用户名:')
count = 0
for x in name:
    if 'a' <= x <= 'z' or 'A' <= x <= 'Z' or '1' <= x <= '9':
        count += 1
if count == len(name):
    print('合法')
else:
    print('不合法')
  1. 输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)

例如: 'abc' — 不合法 '123' — 不合法 'abc123' — 不合法 'Abc123ahs' — 合法 'Abc' — 不合法

name = input('请输入用户名:')
count = 0
if 'A' <= name[0] <= 'Z':
    for x in name[1:]:
        if 'a' <= x <= 'z' or 'A' <= x <= 'Z' or '1' <= x <= '9':
            if '1' <= x <= '9':
                count += 1
            if count != 0:
                print('合法')
                break
        else:
            print('不合法')
    
    if count == 0:
        print('不合法')
else:
    print('不合法')
  1. 输入一个字符串,将字符串中所有的大写字母取出来产生一个新的字符串

例如:输入**'abFc1shj2A3klBs99+2kDkk'** 输出:**'FABD'**

str3 = input('请输入字符串:')
new_str = ''
for x in str3:
    if 'A' <= x <= 'Z':
        new_str += x
print(new_str)
  1. 输入字符串,将字符串的开头和结尾变成'+',产生一个新的字符串

例如: 输入字符串**'abc123', 输出'+bc12+'**

str4 = input('请输入字符串:')
new_str = '+'
for i in range(1,len(str4)-1):
    new_str += str4[i]
print(new_str+'+')
  1. 输入字符串,获取字符串的中间字符

例如: 输入**'abc1234'** 输出:'1' 输入**'abc123'** 输出**'c1'**

str5 = input('请输入字符串:')
if len(str5)%2 == 1:
    print(str5[len(str5)//2]) #3->1 5->2 7->3
else:
    print(str5[len(str5)//2-1:len(str5)//2+1])  #2->0,1 4->1,2 6->2,3
  1. (难)写程序实现字符串函数find/index的功能(获取字符串1中字符串2第一次出现的位置)

例如: 字符串1为:how are you? Im fine, Thank you! , 字符串2为:you, 打印8

str1 = 'how are you? Im fine, Thank you!'
str2 = 'you'
for i in range(len(str1)-len(str2)+2):#abcd cd 2,3
    # print(str1[i:i+len(str2)])
    if str1[i:i+len(str2)] == str2:
        print(str2,i)
        break
  1. 获取两个字符串中公共的字符

例如: 字符串1为:abcaaa123, 字符串2为: huak3 , 打印:公共字符有:a3

str1 = 'abcaaa123'
str2 = 'huak3'
new_str = ''
for i in str1:
    if i in str2 and i not in new_str:
        new_str += i
print(new_str)
  1. 定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别

stu = {'name':'stu1','age':18,'score':98,'tel':'12321','gender':'男'}
  1. 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )

  1. 统计不及格学生的个数

  1. 打印不及格未成年学生的名字和对应的成绩

  1. 求所有男生的平均年龄

  1. 打印手机尾号是8的学生的名字

  1. 打印最高分和对应的学生的名字

  1. 删除性别不明的所有学生

  1. 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)

stu = [
    {'name':'stu1','age':18,'score':98,'tel':'12321','gender':'女'},
    {'name':'stu2','age':12,'score':78,'tel':'23802','gender':'女'},
    {'name':'stu3','age':23,'score':83,'tel':'12934','gender':'不明'},
    {'name':'stu4','age':26,'score':50,'tel':'13243','gender':'不明'},
    {'name':'stu5','age':21,'score':62,'tel':'10938','gender':'男'},
    {'name':'stu6','age':14,'score':53,'tel':'12248','gender':'男'}
]
# 1.统计不及格学生的个数
count = 0
for x in stu:
    if x['score'] < 60:
        count += 1
print(count)
print('----------------------华丽的分界线----------------------')
# 2.打印不及格未成年学生的名字和对应的成绩
for x in stu:
    if x['score'] < 60 and x['age'] < 18:
        print(x['name'],x['score'])
print('----------------------华丽的分界线----------------------')
# 3.求所有男生的平均年龄
sum1 = 0
count1 = 0
for x in stu:
    if x['gender'] == '男':
        sum1 += x['age']
        count1 += 1
print(sum1/count1)
print('----------------------华丽的分界线----------------------')
# 4.打印手机尾号是8的学生的名字
for x in stu:
    if x['tel'][-1] == '8':
        print(x['name'])
print('----------------------华丽的分界线----------------------')
# 5.打印最高分和对应的学生的名字
max1 = 0
name = ''
for x in stu:
    if x['score'] > max1:
        max1 = x['score']
        name = x['name']
print(name,max1)
print('----------------------华丽的分界线----------------------')
# 6.删除性别不明的所有学生
new_stu = []
for x in stu:
    if x['gender'] != '不明':
        new_stu.append(x)
print(new_stu)
print('----------------------华丽的分界线----------------------')
# 7.将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
new_stu = []
while True:
    for x in stu:
        count = 0
        for y in stu:
            if x['score'] >= y['score']:
                count += 1
        if count == len(stu):
            new_stu.append(x)
            stu.remove(x)
    if stu == []:
        break
print(new_stu)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值