前言:
1、以后每天会在文末附上第二天的题目,可以提前写写,打开思路;
2、遇到不懂的地方可以多看看注释和相关知识点部分;
3、每题至少会给出两个写法,可根据自身情况学习掌握;
4、量不在多,需持之以恒!
目录:
Question 16
1、Question:
2、Solution
2.1 列表推导式和字符串的join方法
2.2 列表推导式、append方法和字符串的join方法
Question 17
1、Question:
2、Solution
2.1 map函数
2.2 strip函数
2.3 列表推导式(三元表达式+迭代器)
2.4 直接替换为字符串再转int
2.5 split函数转列表
2.6 Python 2
3、相关知识点
3.1 三元表达式
【Next Question】
Question 18
Question:
Question 161、Question:
使用列表理解,将列表中的每个奇数平方。该列表由一系列逗号分隔的数字输入.
input:
1,2,3,4,5,6,7,8,9
output:
1,9,25,49,81
2、Solution2.1 列表推导式和字符串的join方法
lst = [str(int(i)**2) for i in input().split(',') if int(i) % 2]
print(",".join(lst))
2.2 列表推导式、append方法和字符串的join方法
lst = input().split(',')
seq = []
lst = [int(i) for i in lst] # 将字符串转换为整数
for i in lst:
if i%2 != 0:
i = i*i
seq.append(i)
seq = [str(i) for i in seq] # 所有整数都转换为字符串,以便能够应用连接操作
print(",".join(seq))
Question 171、Question:
编写一个程序,根据控制台输入的交易日志计算银行账户的净额。交易日志格式如下所示:
D 100
W 200
假设向程序提供了以下输入:
D 300
D 300
W 200
D 100
output:_
500
2、Solution2.1 map函数
total = 0
while True:
s = input().split()
if not s: # 如果字符串为空,则中断
break
cm,num = map(str,s) # 两个输入在字符串数据类型中以cm和num形式分布
if cm=='D':
total+=int(num)
if cm=='W':
total-=int(num)
print(total)
2.2 strip函数
lst = []
while True:
x = input()
if len(x)==0:
break
lst.append(x)
balance = 0
for item in lst:
if 'D' in item:
balance += int(item.strip('D '))
if 'W' in item:
balance -= int(item.strip('W '))
print(balance)
2.3 列表推导式(三元表达式+迭代器)
lines = []
while True:
loopInput = input()
if loopInput == "done":
break
else:
lines.append(loopInput)
lst = list(int(i[2:]) if i[0] == 'D' else -int(i[2:]) for i in lines)
print(sum(lst))
列表推导式
[expression for item in iterable]
expression 表示要对迭代器中的每个元素进行求值的表达式,item 表示迭代器中的每个元素,iterable 表示要迭代的对象。
三元表达式
int(i[2:]) if i[0] == ‘D’ else -int(i[2:])
使用了三元表达式,根据字符串 i 的第一个字符是否为字母 D 来判断要对字符串进行什么样的操作。如果 i 的第一个字符为字母 D,则截取字符串 i 从第二个字符开始到结尾的子字符串,并将其转换为整数;否则,截取字符串 i 从第二个字符开始到结尾的子字符串,并将其转换为整数后取相反数。
迭代器
for i in lines
表示对列表 lines 中的每个元素进行迭代,将其分别赋值给变量 i。
2.4 直接替换为字符串再转int
transactions = []
while True:
text = input("> ")
if text:
text = text.strip('D ')
text = text.replace('W ', '-')
transactions.append(text)
else:
break
transactions = (int(i) for i in transactions)
balance = sum(transactions)
print(f"Balance is {balance}")
2.5 split函数转列表
money = 0
while 1:
trans = input().split(' ')
if trans[0] == 'D':
money = money + int(trans[1])
elif trans[0] == 'W':
money = money - int(trans[1])
elif input() == '':
break
print(f'Your current balance is: {money}')
2.6 Python 2
import sys
netAmount = 0
while True:
s = raw_input()
if not s:
break
values = s.split(" ")
operation = values[0]
amount = int(values[1])
if operation=="D":
netAmount+=amount
elif operation=="W":
netAmount-=amount
else:
pass
print netAmount
3、相关知识点3.1 三元表达式
三元表达式是 Python 中的一种简洁的条件表达式,也被称为条件运算符。它的语法形式如下:
x if condition else y
其中,condition是一个布尔表达式python判断字符串为空,如果为真,则返回x,否则返回y。在这种形式下,三元表达式相当于一个简单的 if-else 语句。
下面是一个简单的示例,用于比较两个数的大小并输出结果:
a = 10
b = 20
print("a is bigger" if a > b else "b is bigger")
在上述示例中,如果变量a的值大于变量b的值python判断字符串为空,则输出字符串”a is bigger”,否则输出字符串”b is bigger”。
三元表达式在 Python 中被广泛地应用于需要简洁的条件语句的场合,例如对列表、字典等数据结构进行筛选、过滤等操作时。
【Next Question】Question 18Question:
网站要求用户输入用户名和密码才能注册。编写一个程序来检查用户输入的密码的有效性.
以下是检查密码的标准:
您的程序应该接受一系列逗号分隔的密码,并将根据上述标准进行检查。要打印符合标准的密码,每个密码用逗号分隔。
Example
如果以下密码作为程序的输入:
ABd1234@1,a F1#,2w3E*,2We3345
output:
ABd1234@1
END
▼
往期精彩回顾
▼
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688