# 1. 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
str1 ='abcd1234'# 'bd24'print(str1[1::2])# 2.输入用户名,判断用户名是否合法(用户名长度6~10位)# name = input('请输入用户名:')# if 6 <= len(name) <= 10:# print('合法')# else:# print('不合法')# 3.输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)# name = input('请输入用户名:')# for x in name:# if not(x.isdigit() or x.islower() or x.isupper()):# print(name, '不合法')# break# else:# print(name, '合法')# 4.输入一个字符串,将字符串中所有的数字字符取出来产生一个新的字符串
str1 ='abc1shj23kls99+2kkk'# 方法1:
new_str =''for x in str1:if x.isdigit():
new_str += x
print(new_str)# 方法2:
new_str =''.join([x for x in str1 if x.isdigit()])print(new_str)# 5.输入一个字符串,将字符串中所有的小写字母变成对应的大写字母输出 (用upper方法和自己写算法两种方式实现)# 例如: 输入'a2h2klm12+' 输出 'A2H2KLM12+'
str1 ='a2h2klm12+'# 方法1:
result = str1.upper()print(result)# 方法2:
new_str =''for x in str1:ifnot'a'<= x <='z':
new_str += x
else:# 小写字母和对应的大小字母的编码值之差是32
new_str +=chr(ord(x)-32)print(new_str)# 6.输入一个小于1000的数字,产生对应的学号# # 例如: 输入'23',输出'py1901023' 输入'9', 输出'py1901009' 输入'123',输出'py1901123'# num = input('请输入一个小于1000的正整数:')# width = 3# result = 'py1901' + (width - len(num)) * '0' + num# print(result)# 7.输入一个字符串,统计字符串中非数字字母的字符的个数
str1 ='anc2+93-sj胡说'
count =0for x in str1:if x.isdigit()or x.isupper()or x.islower():continue
count +=1print(count)# 8.输入字符串,将字符串的开头和结尾变成’+',产生一个新的字符串
str1 ='abc123'
result ='+'+ str1[1:-1]+'+'print(result)# 9.输入字符串,获取字符串的中间字符# N // 2# N //2 - 1, N // 2
str1 ='abc1234a'
count =len(str1)if count %2:print(str1[count //2])else:print(str1[count//2-1: count//2+1])# 10.写程序实现字符串函数find/index的功能(获取字符串1中字符串2第一次出现的位置)
str1 ='how are you? im fine, Thank you!'
str2 ='you'
count2 =len(str2)# 方法1:for index inrange(len(str1)-count2 +1):if str1[index: index+count2]== str2:print(index)breakelse:print('找不到!')# 方法2:
result = str1.split(str2,1)iflen(result)==1:print('找不到!')else:print(len(result[0]))# 11.获取两个字符串中公共的字符
str1 ='abcaa123'
str2 ='huak3'# 方法1:
new_str =''for x in str1:if x in str2 and x notin new_str:
new_str += x
print(new_str)# 方法2:
result =''.join(set(str1)&set(str2))print(result)# 12.输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)
name =input('请输入用户名:')if name[0].isupper():
num_count =0# 数字字符的个数for x in name[1:]:ifnot(x.isdigit()or x.islower()or x.isupper()):print('不合法')breakelse:if x.isdigit():
num_count +=1else:if num_count >0:print('合法')else:print('不合法')else:print('不合法')