前言:本文记录2024年3月11日至2024年3月19日牛客网所做的基础题目(错题本):
我写的:
num = input()
b = []
for i in num:
x = (int(i)+3)%9
b.append(x)
b[0],b[2] = b[2],b[0]
b[1],b[3] = b[3],b[1]
for i in b:
print(i, end='')
I get it:
1,将数据通过append依次存入列表
2,两数交换(a,b = b,a
)
stack = [1, 2, 3, 4]
stack.append(input()) # 输入 1 (返回了'1',变成了:append('1'))
print(stack) # 输出 [1, 2, 3, 4, '1']
要输出[1,2,3,4,1]:
stack.append(int(input()))
注意input()
以后要转为int,如下要实现:if 0
如果不用int()
,则返回的是字符“0”
if int(input()):
print("hello world!")
else:
print("Erros!")
注意:
1,在python中两个整数相除/
会保留小数部分(这点与C语言不同)
2,//
代表的是整除(抛弃小数)
x = int(input()) # 输入5
y = int(input()) # 输入2
print(f"{x/y} ") # 输出:2.5
print(f"{x%y}") # 输出:1
print(f"{x//y}") # 输出:2
空列表在这里相当于None
my_list = []
if my_list:
print("my_list is not empty!")
else:
print("my_list is empty!")
一般来说,else
和for
属于不同的层次,但是:
它们在循环中也有特殊的交互。在 for
循环中,else
子句可以用于指定循环正常结束时的代码块,即当循环没有被 break
语句中断时执行的代码。这被称为“else
子句”。
例如:
for i in range(5):
if i == 3:
break
print(i)
else:
print("循环正常结束")
在上面的示例中,当
i
的值达到 3 时,break
语句会中断循环,因此else
子句将不会执行。 但,如果循环正常结束(即完成了所有迭代),else
子句将会执行。
错题:
如下,判断new
的元素在不在current
里面:
思路:用for
依次拿到new_users
的每一个元素——再依次拿current_users
的元素与之比较——当相等的时候会进入if
,如果都不相等,则本次for
正常执行完,于是执行下面的else
语句
current_users = ['Niuniu','Niumei','GURR','LOLO']
new_users = ['GurR','Niu Ke Le','LoLo','Tuo Rui Chi']
for i in new_users:
for j in current_users:
if i.lower() == j.lower():
print(f"The user name {i} has already been registered! Please change it and try again!")
break
else:
print(f"Congratulations, the user name {i} is available!")
一开始写的(错误的):
if input() == "pizza":
print(10)
elif input() == "rice":
print(2)
elif input() == "yogurt":
print(5)
else:
print(8)
这里先输入一个值,先判断是否等于pizza
,如果不等于就会执行下一个elif
语句:
但是,下一个elif
语句又会让你再输入一个值
修改后:
a = input()
if a == "pizza":
print(10)
elif a == "rice":
print(2)
elif a == "yogurt":
print(5)
else:
print(8)
使用两个列表分别存放要记录的值
level = []
score = []
new_level ,new_score,total_score = 0,0,0
while 1:
new_level = input()
if new_level == "False":
# 注意这里一定是和字符串“False”比较,因为input返回的是字符串(“False”),而不是布尔值
break
else:
level.append(new_level)
new_score = float(input())
score.append(new_score)
total_score +=new_score
sum = 0
for i in range(len(score)):
if level[i] == "A":
sum += score[i]*4.0
elif level[i] == "B":
sum += score[i]*3.0
elif level[i] == "C":
sum += score[i]*2.0
elif level[i] == "D":
sum += score[i]*1.0
else:
sum += 0
print(f"{sum/total_score:.2f}")
要求换行:
print() # print("\n")是换两行(因为print的默认参数:结束后会换行)
(还不是很理解)
numbers_list = [i for i in range(10)]
print(numbers_list)