1. 编写⼀个程序,该程序根据控制台输⼊的交易⽇志来计算银⾏账户的净额。交易⽇志格式如下
D 100
W 200
D表示存款,W表示取款,数字表示存取金额
假设在程序中输⼊以下:
D 300
D 300
W 200
D 100
则程序应输出:
500
代码示例:
amount = 0
while True:
s = input()
if not s:
break
values = s.split(" ")
operation = values[0]
_amount = int(values[1])
if operation=="D":
amount += _amount
elif operation=="W":
amount -= _amount
print(f"balance of account:{amount}")
2. ⽹站要求⽤户输⼊⽤户名和密码进⾏注册。 编写程序以检查⽤户输⼊的密码的有效性。
以下是检查密码的标准:
1. ⾄少包含1个小写字⺟, [a-z]
2. ⾄少包含0~9之间1个数字
3. ⾄少包含1个大写字⺟,[A-Z]
4. 至少包含指定的特殊集[$#@]中的1个字符
5. 交易密码的⻓度在 6 ~ 12之间
输入⼀系列⽤逗号分隔的密码,并将根据上述条件进⾏检查。 符合条件的密码将被打印,每个密码之间⽤逗
号分隔。
例:
假设在程序中输⼊以下密码:
ABc123@10,a-F1222,12w3,2We1234
则程序应输出:
ABd1234@10
import re
result = []
inputs = input().split(',')
for password in inputs :
if not 6 <= len(password) <= 12:
continue
if not re.search("[a-z]", password):
continue
elif not re.search("[0-9]", password):
continue
elif not re.search("[A-Z]", password):
continue
elif not re.search("[$#@]", password):
continue
elif re.search("\s", p):
continue
else
pass
result.append(password)
else:
print ",".join(result)
讲解:
这里主要是正则表达式的使用,元字符及常见的正则表达式应该要能写
3. 编写⼀个程序,以升序对(名称,年龄,分数)元组进⾏排序,其中名称是字符串,年龄和身⾼是数字。 元组由控制台输⼊。
排序标准是:
1:根据名称排序;
2:然后根据分数排序;
3:然后按年龄排序。优先级是名称>分数>年龄。
如果给出以下元组作为程序的输⼊:
Tom,19,80
John,20,90
Jony,17,91
Jony,17,93
Json,21,85
则程序应输出:
[('John','20','90'),('Jony','17','91'),('Jony','17','93'),('Json','21 ','85'),('Tom','19','80')]
示例代码:
lists = []
while True:
inputs = input()
if not inputs:
break
lists.append(tuple(inputs.split(",")))
print sorted(lists, key=lambda x:(x[0], x[2], x[1])
讲解:
sort
默认排序按照元组顺序排序,通过key
关键字可以指定排序位置
讨论区