-
输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)
例如: 输入**'abcd1234 ’ ** 输出**‘bd24’**
var1 = input('请输入字符') var2 = "" i = 0 for ch in var1: if i % 2 == 0: i += 1 continue var2 += ch i += 1 print(var2)
-
输入用户名,判断用户名是否合法(用户名长度6~10位)
var1 = input('请输入字符') len1 = len(var1) if len1 < 10: if len1 > 6: print(True) else: print(False)
-
输入用户名,判断用户名是否合法(用户名中只能由数字和字母组成)
例如: ‘abc’ — 合法 ‘123’ — 合法 ‘abc123a’ — 合法
var1 = input('请输入字符') flag1 = True for x in var1: # 循环判断每个字符的ASCII码是否在要求范围内 i = ord(x) if i < 48 or i > 122: flag1 = False break elif (i > 90) and (i < 97): flag1 = False break elif (i > 57) and (i < 65): flag1 = False break print(flag1)
-
输入用户名,判断用户名是否合法(用户名必须包含且只能包含数字和字母,并且第一个字符必须是大写字母)
例如: ‘abc’ — 不合法 ‘123’ — 不合法 ‘abc123’ — 不合法 ‘Abc123ahs’ — 合法 ‘Abc’ — 不合法
var1 = input('请输入字符') flag1, flag2, flag3 = True, False, False # f1,f1,f3分别记录字符范围是否合法,用户名是否包含数字,用户名是否包含字母 ch = ord(var1[0]) if (ch > 64) and (ch < 91): for x in var1: # 循环判断每个字符的ASCII码是否在要求范围内 i = ord(x) if (i > 47) and (i < 58): if flag2: continue flag2 = True continue elif (i > 64) and (i < 91): if flag3: continue flag3 = True continue elif (i > 96) and (i < 123): if flag3: continue flag3 = True continue flag1 = False break else: flag1 = False if flag1: flag1 = flag3 and flag2 and flag1 print(flag1) else: print(flag1)
-
输入一个字符串,将字符串中所有的大写字母取出来产生一个新的字符串
例如:输入**‘abFc1shj2A3klBs99+2kDkk’** 输出:‘FABD’
var1 = input('请输入字符') var2 = "" for ch in var1: ch = ord(ch) if (ch > 64) and (ch < 91): var2 += chr(ch) print(var2)
-
输入字符串,将字符串的开头和结尾变成’+',产生一个新的字符串
例如: 输入字符串**‘abc123’, 输出’+bc12+'**
var1 = input('请输入字符') var2 = "+" for x in range(1, len(var1) - 1): var2 += var1[x] var2 += '+' print(var2)
-
输入字符串,获取字符串的中间字符
例如: 输入**‘abc1234’** 输出:‘1’ 输入**‘abc123’** 输出**‘c1’**
var1 = input('请输入字符') var2 = "" len1 = len(var1) i = len1 // 2 if len1 % 2 == 0: var2 = var1[i - 1] + var1[i] else: var2 = var1[i] print(var2)
-
(难)写程序实现字符串函数find/index的功能(获取字符串1中字符串2第一次出现的位置)
例如: 字符串1为:how are you? Im fine, Thank you! , 字符串2为:you, 打印8
def find(str1, str2): # 无优化的find简单实现 i = 0 # 记录要返回的下标 j = 0 # 记录当前对比下标 str3 = '' for x in range(len(str1)): # x表示str1的下标 if str2[0] == str1[x]: i = x j = x str3 += str1[j:len(str2) + j] if str3 == str2: return i str3 = '' return 0 stri1 = "how are you? Im fine, Thank you!" stri2 = " you!" print(find(stri1, stri2))
-
获取两个字符串中公共的字符
例如: 字符串1为:abcaaa123, 字符串2为: huak3 , 打印:公共字符有:a3
def unfind(st1, ch): # 返回值取反的find for a in st1: if ch == a: return False return True str1 = 'abcaaa123' str2 = 'huak3' str3 = '' for x in str1: for y in str2: if (x == y) and unfind(str3, x): str3 += x break print(str3)
-
定义一个变量保存一个学生的信息,学生信心中包括:姓名、年龄、成绩(单科)、电话、性别
studeng = { 'name': 'zhangsan', 'age': 15, 'chenji': 60, 'phone': 123456789, 'sex': 'boy', }
-
定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名、年龄、成绩(单科)、电话、性别(男、女、不明) )
- 统计不及格学生的个数
- 打印不及格未成年学生的名字和对应的成绩
- 求所有男生的平均年龄
- 打印手机尾号是8的学生的名字
- 打印最高分和对应的学生的名字
- 删除性别不明的所有学生
- 将列表按学生成绩从大到小排序(挣扎一下,不行就放弃)
stu = [
{'name': 'zhangsan',
'age': 21,
'chenji': 60,
'phone': '123456781',
'sex': 'boy', },
{'name': 'lisan',
'age': 31,
'chenji': 70,
'phone': '123456784',
'sex': 'girl', },
{'name': 'sansan',
'age': 11,
'chenji': 50,
'phone': '123456788',
'sex': 'boy', },
{'name': 'sansan1',
'age': 12,
'chenji': 10,
'phone': '123456788',
'sex': 'none', }
] # 定义
def tongji(): # 统计不及格学生的个数
i = 0
for x in stu:
if x['chengji'] < 60:
i += 1
print(i)
return i
def printname(): # 打印不及格未成年学生的名字和对应的成绩
for x in stu:
if x['age'] < 18 or x['chenji'] < 60:
print(x['name'], x['chenji'])
return 0
def pingage(): # 求所有男生的平均年龄
i, j = 0, 0
for x in stu:
if x['sex'] == 'boy':
i += x['age']
j += 1
i /= j
print(i)
return 0
def phone8(): # 打印手机尾号是8的学生的名字
for x in stu:
if int(x['phone'][-1]) == 8:
print(x['name'])
return 0
def maxstu(): # 打印最高分和对应的学生的名字
i = 0
str1 = ''
for x in stu:
if int(x['chenji']) > i:
i = int(x['chenji'])
str1 = ''
str1 = x['name']
print(i, str1)
return 0
def delstu(): # 删除性别不明的所有学生
for x in stu:
if (x['sex'] == 'boy') or (x['sex'] == 'girl'): # 性别符合要求则不做任何操作否则删去数据
continue
else:
del stu[stu.index(x)]
print(stu)
return 0
def swqp(a, b): # 交换以a,b为下标的stu的值
swap = {'name': 'none',
'age': 0,
'chenji': 0,
'phone': '0',
'sex': 'none', }
swap = stu[a]
stu[a] = stu[b]
stu[b] = swap
return 0
def stusort(): # 将列表按学生成绩从大到小排序
i, j = 0, 0
for tag in range(len(stu)):
for x in range(tag, len(stu)):
if int(stu[x]['chenji']) > i:
i = int(stu[x]['chenji'])
j = x
if tag == j:
pass
else:
swqp(j, tag)
i = 0
print(stu)
return 0
# 请在此处测试
stusort()