python第二周day5(9.27)
1、day9字符串作业更改版
# *1.1输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
# 例如: 输入**'abcd1234 ' ** 输出**'bd24'**
# 切片
str1 = 'abcd1234'
print(str1[1::2]) # bd24
# 2.1输入用户名,判断用户名是否合法(用户名长度6~10位)
# str2 = input('请输入一个用户名:')
# if 6 <= len(str2) <= 10:
# print('用户名合法')
# else:
# print('用户名不合法') # 请输入一个用户名:陈来
# 3.1 **输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)(经常遇到)
# user_name = input('请输入一个用户名:')
# for x in user_name:
# if not ('0' <= x <= '9' or 'a' <= x <= 'z' or 'A' <= x <= 'Z'):
# print('用户名不合法')
# break
# else:
# print('用户名合法')
# 4.1 ***输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)
user_name = input('请输入一个用户名:')
if 'A' <= user_name[0] <= 'Z':
# 保存数字字符的个数
count = 0
for x in user_name[1:]:
if not ('0' <= x <= '9' or 'a' <= x <= 'z' or 'A' <= x <= 'Z'):
print('用户名不合法')
break
else:
if '0' <= x <= '9':
count += 1
else:
if count: # count !=0 一样
print('用户名合法')
else:
print('用户名不合法')
else:
print('用户名不合法')
# 练习5:输入一个字符串,将字符串中所有的数字字符取出来产生一个新的字符串
str3 = 'abc1shj23kls99+2kkk'
new_str3 = ''
for x in str3:
if '0' <= x <= '9':
new_str3 += x
print(new_str3) #123992
# 练习6:输入一个字符串,将字符串中所有的小写字母变成对应的大写字母输出 (用upper方法和自己写算法两种方式实现)
str1 = 'a2h2klm12+'
# 方法一
# 规律:小写字母转大写字母:小写字母的编码值 - 32 --> 转换成字符
new_str1 = ''
for x in str1:
if 'a' <= x <= 'z':
new_str1 += chr(ord(x)-32) # ord(字符) ,chr(编码值)
else:
new_str1 += x
print(new_str1) # A2H2KLM12+
# a:97 A:65 b:98 B:66
# 方法二
# 字符串.upper() - 将字符串中所有的小写字母转换成对应的大写字母,产生一个新的字符串
# lower 大写转小写
new_str1 = str1.upper()
print(new_str1) # A2H2KLM12+
# **练习7:输入一个小于1000的数字,产生对应的学号(简单做法,运用+,*)
# 输入 ** '23' **,输出 ** 'py1901023' ** 输入 ** '9' **, 输出 ** 'py1901009' ** 输入 ** '123' **,输出 ** 'py1901123' **
# 23 -> 023 9 -> 009 123 -> 123
num = '23'
study_id = 'py1901' + (3-len(num))*'0'+num
print(study_id) # 'py1901
# 练习8.1 输入一个字符串,统计字符串中非数字字母的字符的个数
# str1 = input('请输入一个字符串:')
str1 = 'anc2+93-sj胡说'
count = 0
for x in str1:
if not ('0' <= x <= '9' or 'a' <= x <= 'z' or 'A' <= x <= 'Z'):
count += 1
print(count) # 4
# 练习9:输入字符串,将字符串的开头和结尾变成'+',产生一个新的字符串
# 例如: 输入字符串**'abc123'**, 输出**'+bc12+
str1 =