-
输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
例如: 输入**'abcd1234 ’ ** 输出**‘bd24’**
str1=input('请输入字符串:') for i in range(1,len(str1),2): print(str1[i])
- 输入用户名,判断用户名是否合法(用户名长度6~10位)
user=input('请输入用户名:') if 6<=len(user)<=10: print(user,'输入合法') else: print('输入不合法')
-
输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)
例如: ** ‘abc’ ** — 合法 ** ‘123’ ** — 合法 **‘abc123a’ ** — 合法
# 思路:将输入的字符串拆分为数字和字母,如果新的字符串长度和原来的相等则是合法用户名,如果长度不等,则不是 user=input('请输入用户名:') str1=user.upper() strs='' for i in str1: if '0'<=i<='9'or 'A'<=i<='Z': strs+=i if len(strs)==len(user): print('合法') else: print('不合法')
-
输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)
例如: ‘abc’ — 不合法 ‘123’ — 不合法 ‘abc123’ — 不合法 ‘Abc123ahs’ — 合法
# 思路1:将输入的字符串拆分为数字和字母,如果新的字符串长度和原来的相等则是合法用户名,如果长度不等,则不是 str1 = input('请输入用户名:') str2 = str1.upper() # 将str1所有的字母转换成大写 strs = '' # 定义一个变量保存大写字母 strs2 = '' # 定义一个变量保存数字 if 'A' <= str1[0] <= 'Z': # 判断首字母是否大写 for i in str2: if 'A' <= i <= 'Z': strs += i # 筛选str2的大写字母存放到strs里面 for j in str2: if '0' <= j <= '9': strs2 += j # 将元素中的数字全部放到strs2里面 if len(strs) != 0 and len(strs2) != 0: # 判断存放的大写字母和数字数量是否为零 strs3 = strs + strs2 # 将两个字母和数字放入strs3 if len(strs3) == len(str1): # 判断strs3和str1的长度是否相等 print('合法') else: print('不合法') else: print('不合法') else: print('不合法')
# 方法二
name = input('请输入用户名:')
if 'A' <= name[0] <= 'Z':
have_num = False
for c in name[1:]:
if not ('a' <= c <= 'z' or 'A' <=c<= 'Z' or '0' <= c <= '9'):
print('不合法')
break
else:
if '0' <= c <= '9':
have_num = True
else:
if have_num == True:
print('合法')
else:
print('不合法')
else:
print('不合法')
-
输入一个字符串,将字符串中所有的数字字符取出来产生一个新的字符串
例如:输入**‘abc1shj23kls99+2kkk’** 输出:'123992’
zfc=input('请输入字符串:') zfc_num='' for num in zfc: if '0'<=num<='9': zfc_num+=num print(zfc_num)
-
输入一个字符串,将字符串中所有的小写字母变成对应的大写字母输出 (用upper方法和自己写算法两种方式实现)
例如: 输入**‘a2h2klm12+’ ** 输出 'A2H2KLM12+'
zm =input('请输入字符串:') # 方法一 zm_dx = '' print(ord('z')) for xx in zm: if 97 <= ord(xx) <= 122: xx1=ord(xx) - 32 zm_dx+=chr(xx1) else: zm_dx+=xx print(zm_dx) # 方法二 print(zm.upper())
-
输入一个小于1000的数字,产生对应的学号
例如: 输入**‘23’,输出’py1901023’** 输入**‘9’, 输出’py1901009’** 输入**‘123’,输出’py1901123’**
# 方法一 num = 'py1901' nums = '' xh = input('请输入学号:') if int(xh) < 10: nums = num + '00' + xh print(nums) elif int(xh) < 100: nums = num + '0' + xh print(nums) elif int(xh) < 1000: nums = num + xh print(nums) else: print('输入有误') # 方法二 num = 'py1901' xh = input('请输入100以内的学号:') print(f'{num}{xh.zfill(3)}')
-
输入一个字符串,统计字符串中非数字字母的字符的个数
例如: 输入**‘anc2+93-sj胡说’** 输出:4 输入**’===’** 输出:3
strs1=input('请输入字符串:') strs2=strs1.lower() strs3='' for i in strs2: if 'a'<=i<='z'or '0'<=i<='9': strs3+=i nums=len(strs1)-len(strs3) print(nums)
-
输入字符串,将字符串的开头和结尾变成’+’,产生一个新的字符串
例如: 输入字符串**‘abc123’, 输出’+bc12+’**
# 方法一 str1=input('请输入字符串:') str2='+' str3='' for i in range(1,len(str1)-1): str3+=str1[i] print(str3) print(f'{str2}{str3}{str2}') # 方法二 str1='123456' str2='+' new_str=str1.replace(str1[0],str2).replace(str1[-1],str2) # 将下标为0和-1的字符替换成+ print(new_str) # +2345+
···
# 方法3
str1='abc123'
new_str=f'+{str1[1:-1]}+'
print(new_str)
- 输入字符串,获取字符串的中间字符
例如: 输入**‘abc1234’** 输出:‘1’ 输入**‘abc123’** 输出**‘c1’**
str1=input('请输入字符串:')
b=len(str1)//2
if len(str1)&1:
print(f'中间字符为{str1[b]}')
else:
print(f'中间字符为:{str1[b-1]}和{str1[b]}')
- 写程序实现字符串函数find/index的功能(获取字符串1中字符串2第一次出现的位置)
例如: 字符串1为:how are you? Im fine, Thank you! , 字符串2为:you, 打印8
str1='how are you? Imfine, Thankyou!'
str2='you'
index=str1.find(str2, 0, len(str1))
print(f'出现的位置为{index}')
- 获取两个字符串中公共的字符
例如: 字符串1为:abc123, 字符串2为: huak3 , 打印:公共字符有:a3
str1=' abc12311111'
str2='huak3222'
new_strs=' '.join(set(str1)&set(str2))
print(f'公共字符有: {new_strs}')