2021-03-12

3-11 课后作业题

1.输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)

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

a = 'abcd1234'
print(a[1::2])
2.输入用户名,判断用户名是否合法(用户名长度6~10位)
a = str(input('请输入6~10位用户名:'))
if 6 <= len(a) <= 10:
    print('合法')
else:
    print('不合法')
3.输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)例如: ** ‘abc’ ** — 合法 ** ‘123’ ** — 合法 **‘abc123a’ ** — 合法
user = str(input('请输入用户名:'))
for x in user:
    if user < '0' or '9' < user < 'A' or 'Z' < user < 'a' or 'z' < user:
        print('不合法')
    else:
        print('合法')
# 方法二:
    if not ('a'<= x <= 'z' or 'A' <= x <= "Z" or '0'<= x <= '9'):
        print('不合法')
        break
    else:
        print('合法')
4.输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)例如: ** ‘abc’ ** — 不合法 ** ‘123’ ** — 不合法 ** ‘abc123’ ** — 不合法 ** ‘Abc123ahs’ ** — 合法
name1 = input('输入用户名:')
if 'A' <= name1[0] <= 'Z':
    count = 0
    for x in name1[1:]:
        if 'a' <= x <= 'z'or 'A' <= x <= 'Z' or '0' <= x <= '9':
            count += 1
        else:
            print('不合法')
            break
    else:
        if count == 0:
            print('不合法')
        else:
            print('合法')
5.输入一个字符串,将字符串中所有的数字字符取出来产生一个新的字符串例如:输入 ** ‘abc1shj23kls99+2kkk’ ** 输出: ** ‘123992’ **
str1 = 'abc1shj23xxkls99+2kkk'
for x in str1:
    if '0' <= x <= '9':
        print(x, end='')
# 方法二:
new_str = ''
for x in str1:
    if '0' <= x <= '9':
        new_str += x
print(new_str)
# 方法三:
new_str =''.join([x for x in str1 if '0'<= x <= '9'])
print(new_str)

6.输入一个字符串,将字符串中所有的小写字母变成对应的大写字母输出(用upper方法和自己写算法两种方式实现例如: 输入 ** ‘a2h2klm12+’ ** 输出 ** ‘A2H2KLM12+’ **

# 方法一:
print(str.upper())
# 方法二
new_str = ''
for x in str1:
    if 'a' <= x <= 'z':
        new_str += chr(ord(x) - 32)
    else:
        new_str += x
print(new_str)
# 方法三:
new_str = ''.join([chr(ord(x) - 32) if 'a'<= x <= 'z'else x for x in str1])

str1 = "a2h2klm12+"
str2 = ""
for c in range(len(str1)):
    if "a" <= str1[c] <= "z":
        str2 += chr(ord(str1[c])-32)
    else:
        str2 += str1[c]
print(str2)
7.输入一个小于1000的数字,产生对应的学号例如: 输入 ** ‘23’ **,输出 ** ‘py1901023’ ** 输入 ** ‘9’ **, 输出 ** ‘py1901009’ ** 输入 ** ‘123’ **,输出 ** ‘py1901123’ **
str2 = input('输入一个小于1000的数字:')
str3 = 'py1901'
print('py1901{:0>3}'.format(str2))
# 方法二:
num = input('输入一个小于1000的数字:')
new_str = 'py1901' + '0'*(3 -len(num)) + num
print(new_str)
# 方法三:
# 字符串.zfill(N)  - 将原字符串转换成长度是N的新字符串,不够的在原字符串前加'0
print('abc'.zfill(5))
new_str = 'py1901' + num.zfill(3)
print(new_str)
8.输入一个字符串,统计字符串中非数字字母的字符的个数例如: 输入 ** ‘anc2+93-sj胡说’ ** 输出: ** 4 ** 输入 ** ‘===’ ** 输出: ** 3 **
str2 = 'anc2+93-sj胡说'
count = 0
for x in str1.lower():
    if not ('0'<= x <= '9'or 'a'<= x <= 'z'or 'A'<= x <= 'Z'):
        count + 1
print(count)
输入字符串,将字符串的开头和结尾变成’+’,产生一个新的字符串例如: 输入字符串 ** ‘abc123’ **, 输出 ** ‘+bc12+’ **
str1 = 'abc123'
new_str = '+'+str1[1:-1] + '+'
print(new_str)
10.输入字符串,获取字符串的中间字符例如: 输入 ** ‘abc1234’ ** 输出: ** ‘1’ ** 输入 ** ‘abc123’ ** 输出 ** ‘c1’ **
11.写程序实现字符串函数find / index的功能(获取字符串1中字符串2第一次出现的位置)例如: 字符串1为: ** how are you? Im fine, Thank you! **, 字符串2为: ** you **, 打印 ** 8 **
str1 = 'how are you? Im fine, Thank you!'
st2 = 'you'
l2 = len(str2)
for index in range(len(str1) - l2 + 1):
    if str1[index:index + l2] == str2:
        print(index)
        break
else:
    print('没有该子串:',-1)
###### 12.获取两个字符串中公共的字符例如: 字符串1为: ** abc123 **, 字符串2为: ** huak3 **, 打印: ** 公共字符有: a3 **

```python
str12 = input('请输入字符串1:')
str121 =input('请输入字符串2:')
str1211 = ''
for x in str12:
  for y in str121:
      if y == x and y not in str1211:
          str1211 += y
print('公共字符有:',str1211)

# 方法二:
new_str = ''
for x in str1:
    if x in str2 and x not in new_str:
        new_str += x
print(new_str)
# 方法三:
new_str = ''.join(set(str1)& set(str2))
print(new_str)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值