Python语法练习题

# %% [markdown]
# 牛牛有一个列表记录了各个朋友的喜欢的数字,num = [3, 5, 9, 0, 1, 9, 0, 3],请你帮他创建列表,然后使用reverse函数将列表反转输出

# %%
num = [3, 5, 9, 0, 1, 9, 0, 3]
renum = num.reverse()
print(num)

# %% [markdown]
# 牛牛有一个name = ['Niumei', 'YOLO', 'Niu Ke Le', 'Mona'] 记录了他最好的朋友们的名字,请创建一个二维列表friends,使用append函数将name添加到friends的第一行。
# 假如Niumei最喜欢吃pizza,最喜欢数字3,YOLO最喜欢吃fish, 最喜欢数字6,Niu Ke Le最喜欢吃potato,最喜欢数字0,Mona最喜欢吃beef,最喜欢数字3。
# 请再次创建一个列表food依次记录朋友们最喜欢吃的食物,并将创建好的列表使用append函数添加到friends的第二行;
# 然后再创建一个列表number依次记录朋友们最喜欢的颜色,并将创建好的列表使用append函数添加到friends的第三行。
# 这样friends就是一个二维list,使用print函数直接打印这个二维list。

# %%
name =  ['Niumei', 'YOLO', 'Niu Ke Le', 'Mona'] 
friends = []
friends.append(name)
food = ['pizza','fish','potato','beef']
friends.append(food)
number = [3,6,0,3]
friends.append(number)
print(friends)

# %% [markdown]
# 牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。
# 破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位数字交换。
# 请输出牛妹破解后的密码。
# 输入描述:
# 输入一个四位数的整数。
# 输出描述:
# 输出破解后的密码,以四位数的形式。

# %%
num = input()
# num = '1234'
sp1 = (int(num[0:1]) +3) % 9
sp2 = (int(num[1:2]) +3) % 9
sp3 = (int(num[2:3]) +3) % 9
sp4 = (int(num[3:4]) +3) % 9
result = str(sp3)+str(sp4)+str(sp1)+str(sp2)
print(result) 


# %% [markdown]
# 栈是一种先进后出的数据结构,类似我们生活中挤电梯,最后进入的肯定是先出来,现我们用Python的列表来模拟栈。假设初始的列表为 stack = [1, 2, 3, 4, 5],请将其视作栈,使用pop函数弹出末尾两个元素,再使用append函数将输入元素加入到栈中,每次操作完成后都要输出整个列表。
# 输入描述:
# 输入要加入栈中的整数。
# 输出描述:
# 第一行输出第一次出栈后的列表;
# 第二行输出第二次出栈后的列表;
# 第三行输出元素入栈后的列表。

# %%
state = [1,2,3,4,5]
state.pop(-1)
print(state)
state.pop(-1)
print(state)
state.append(input())
print(state)

# %% [markdown]
# 队列是一种先进先出的数据结构,类似食堂排队打饭,先入队的元素当然要先出队,先请用Python列表模拟队列。现有一列表 queue = [1, 2, 3, 4, 5] 被视作队列,请使用pop函数连续两次取出队首元素,再使用append函数将输入元素添加到队尾,每次操作后都要输出完整的列表。
# 输入描述:
# 输入一个整数表示要添加到队列的元素。
# 输出描述:
# 第一行输出第一次取出队首后的列表;
# 第二行输出第二次取出队首后的列表;
# 第三行输出添加元素到队列后的列表。

# %%
queue = [1, 2, 3, 4, 5]
queue.pop(0)
print(queue)
queue.pop(0)
print(queue)
queue.append(int(input()))
print(queue)

# %% [markdown]
# 描述
# 创建一个列表group_list,其中依次包含字符串 'Tom', 'Allen', 'Jane', 'William', 'Tony' 表示这个小组成员的名字。现有三项任务需要他们去完成,根据不同任务的繁琐度和实际情况需要分别派2人、3人、2人来完成,他们决定通过对列表分片来分配任务。
# 使用print()语句和切片来打印列表group_list的前两个元素表示去做第一个任务的人的名字,
# 再使用print()语句和切片来打印列表group_list的中间三个元素表示去做第二个任务的人的名字,
# 再使用print()语句和切片来打印列表group_list的后两个元素表示去做第三个任务的人的名字。
# 输入描述:
# 无
# 输出描述:
# 按照题意输出
# ['Tom', 'Allen']
# ['Allen', 'Jane', 'William']
# ['William', 'Tony']

# %%
group_list = ['Tom', 'Allen', 'Jane', 'William', 'Tony' ]
print(group_list[0:2])
print(group_list[1:4])
print(group_list[3:5])

# %% [markdown]
# 描述
# 为了辅导刚上小学的妹妹做功课,牛牛想用Python写一个加减器帮助妹妹巩固加减运算。现要求输入两个数字x与y,分别输出x+y的结果和x-y的结果。
# 输入描述:
# 分两行输入两个整数。
# 输出描述:
# 分两行输出加与减的结果。

# %%
x = int(input())
y = int(input())
print(x+y)
print(x-y)

# %% [markdown]
# 刚刚学习Python的牛牛发现,同样的符号出现两次可能代表不同的运算,比如*与**。现输入两个数字x与y,请分别计算x * y 与 xy。
# 输入描述:
# 分两行输入两个整数x与y。
# 输出描述:
# 第一行输出x * y,第二行输出xy 

# %%
x = int(input())
y = int(input())
print(x*y)
print(x**y)

# %% [markdown]
# 描述
# 我们都知道在计算机里除法有两种,一种是整除,结果有商和余数,另一种则是将其除到有小数。现输入两个数字x与y,分别计算两种除法下x/y的结果。
# 输入描述:
# 分两行输入两个整数x与y,其中y不为0.
# 输出描述:
# 第一行输出x除以y的商和余数;
# 第二行输出x除以y的非整除结果,保留两位小数。

# %%
x = int(input())
y = int(input())
print(x//y,x%y)
aa = x/y
print('%.2f' % aa)

# %% [markdown]
# 描述
# 牛牛有一个习惯,新认识一个朋友他就想知道这个朋友和自己的年龄是不是一样大,输入两个整数表示牛牛的年龄和朋友的年龄,请输出牛牛的年龄是否等于朋友的年龄的比较结果?
# 输入描述:
# 一行输入两个整数,以空格间隔。
# 输出描述:
# 直接输出比较结果(True或者False)

# %%
agsstr = input()
ages = agsstr.split()
print(ages[0] == ages[1])

# %% [markdown]
# 牛牛在和牛妹玩猜数字游戏,他们想请你写一个快速判断牛牛的数字是不是大于牛妹数字的程序。输入两个整数,以空格间隔,输出第一个数字是否大于第二个数字,第一个数字是否小于第二个数字。
# 输入描述:
# 一行输入两个整数,以空格间隔。
# 输出描述:
# 第一行输出第一个数字是否大于第二个数字,True 或者 False;
# 第二行输出第一个数字是否小于第二个数字,True 或者 False。

# %%
agsstr = input()
ages = agsstr.split()
print(ages[0] > ages[1])
print(ages[0] < ages[1])

# %% [markdown]
# 牛妹去游乐园,对于某项目,如果牛妹的身高k不超过某个标准x,就不需要收取额外费用,但是该项目有需要身高不低于y才可以保障安全。现依次输入三个数字k、x、y,牛妹想让你帮她比较一下,她的身高是否不超过x,是否不低于y。
# 输入描述:
# 一行输入三个正浮点数k、x、y,三个数字通过空格间隔。
# 输出描述:
# 第一行输出k是否不超过x,True或者False;
# 第二行输出k是否不低于y,True或者False。

# %%
agsstr = input()
ages = agsstr.split()
print(float(ages[0]) <= float(ages[1]))
print(float(ages[0]) >= float(ages[2]))

# %% [markdown]
# 牛牛想要锻炼自己的逻辑能力,于是输入了两个整型变量x和y,分别判断它们的与、或、非关系,你能帮他输出x与y,x或y,非x,非y的值吗?

# %%
xy = input()
x = int(xy.split(' ')[0])
y = int(xy.split(' ')[1])
print(x and y)
print(x or y)
print(not x)
print(not y)

# %% [markdown]
# 描述
# 正在学习Python的牛可乐,对Python里面的大小比较很疑惑。他知道数字之间可以相等,有大小关系,但是字符串之间怎么比较,他就很纳闷了。现在牛可乐输入两个字符串s1与s2,请你帮他比较这两个字符串是否相等,两个字符串各自调用lower函数后还是否相等。
# 输入描述:
# 两行输入两个字符串,其中字符仅包含大小写字母和数字。
# 输出描述:
# 第一行输出s1是否与s2相等的布尔值;
# 第二行输出s1.lower()是否与s2.lower()相等的布尔值。

# %%
s1 = input()
s2 = input()
print(s1 == s2)
print(s1.lower()== s2.lower())

# %% [markdown]
# 描述
# 牛客网内部有一个刷题俱乐部,是大家比拼刷题与交流算法的地方。现在给出俱乐部的名单,请以列表的形式记录它们,并使用Python的成员运算检验给出的名字name是否属于这个俱乐部?(名字区分大小写)
# 输入描述:
# 第一行输入俱乐部的名单,以多个字符串的形式,字符串之间用空格间隔;
# 第二行输入要查询的名字name。
# 输出描述:
# 直接输出这个名字是否属于俱乐部名单的布尔值,True或者False。

# %%
jlbName = input()
name = input()
names = jlbName.split(' ')
print(name in names)

# %% [markdown]
# Python有位运算,是直接将数字看成二进制,直接对二进制数字的每一位进行运算。现输入两个十进制整数x、y,请计算它们的位与、位或,输出按照十进制的形式。
# 输入描述:
# 一行输入两个整数x、y,以空格间隔。
# 输出描述:
# 第一行输出x位与y;
# 第二行输出x位或y。

# %%
num = input()
x,y=num.split(' ')
print(int(x) & int(y))
print(int(x) | int(y))

# %% [markdown]
# 描述
# 牛客网为员工举行了一项快速心算大赛,需要程序员大大写一款涉及加减乘除的验算小程序。假如输入的数字分别是x、y、z、k,请输出x+y的结果与z-k的结果相乘的值。
# 输入描述:
# 一行输入四个整数,以空格间隔。
# 输出描述:
# 直接输出计算结果,结果一定是整数。

# %%
nums= input()
x,y,z,k=nums.split(' ')
print((int(x)+int(y))*(int(z)-int(k)))

# %% [markdown]
# 描述
# Python的条件语句依靠将运算结果转变成布尔值后进行判断,然后分支,如果我们直接判断布尔值会怎么样呢?输入布尔变量,使用条件语句判断,如果为真则输出"Hello World!",否则输出"Erros!"。
# 输入描述:
# 输入0 或者 1。
# 输出描述:
# 输出"Hello World!"或者"Erros!"。

# %%
flag = input()
if flag == 0 :
    print('Hello World!')
else:
    print('Erros!')

# %% [markdown]
# 描述
# 创建一个空列表my_list,如果列表为空,请使用print()语句一行输出字符串'my_list is empty!',
# 否则使用print()语句一行输出字符串'my_list is not empty!'。
# 输入描述:
# 无
# 输出描述:
# 按题目描述进行输出即可

# %%
my_list = []
if my_list == []:
    print('my_list is empty!')
else:
    print('my_list is not empty!')

# %% [markdown]
# 描述
# 创建一个依次包含字符串'Niuniu'、'Niumei'、'GURR'和'LOLO'的列表current_users,
# 再创建一个依次包含字符串'GurR'、'Niu Ke Le'、'LoLo'和'Tuo Rui Chi'的列表new_users,
# 使用for循环遍历new_users,如果遍历到的新用户名在current_users中,
# 则使用print()语句一行输出类似字符串'The user name GurR has already been registered! Please change it and try again!'的语句,
# 否则使用print()语句一行输出类似字符串'Congratulations, the user name Niu Ke Le is available!'的语句。(注:用户名的比较不区分大小写)
# 输入描述:
# 无
# 输出描述:
# 按题目描述进行输出即可。
# The user name GurR has already been registered! Please change it and try again!
# Congratulations, the user name Niu Ke Le is available!
# The user name LoLo has already been registered! Please change it and try again!
# Congratulations, the user name Tuo Rui Chi is available!

# %%
current_user = ["Niuniu", "Niumei", "GURR", "LOLO"]
current_user1 = [i.lower() for i in current_user]
new_users = ["GurR", "Niu Ke Le", "LoLo", "Tuo Rui Chi"]
for name in new_users:
    if name.lower() in current_user1:
        print(
            "The user name %s has already been registered! Please change it and try again!"%name
        )
    else:
        print("Congratulations, the user name %s is available!"%name)

# %% [markdown]
# 描述
# 牛客食堂今天准备了很多丰盛的午餐, 'pizza':10块钱一份,'rice' :2块钱一份,'yogurt':5块钱一份,剩下的其他菜品都是8块钱一份。牛牛在某窗口点餐,请你根据他输入的字符串,使用if-elif-else语句判断牛牛需要花费多少钱?
# 输入描述:
# 输入一个字符串表示菜品。
# 输出描述:
# 输出该菜品的价格。

# %%
cp  = input()
if cp == 'pizza':
    print(10)
elif cp == 'rice':
    print(2)
elif cp == 'yogurt':
    print(5)
else:
    print(8)

# %% [markdown]
# 牛牛在门头沟大学学习,一学年过去了,需要根据他的成绩计算他的平均绩点,假如绩点与等级的对应关系如下表所示。请根据输入的等级和学分数,计算牛牛的均绩(每门课学分乘上单门课绩点,求和后对学分求均值)。
# A
# 4.0
# B
# 3.0
# C
# 2.0
# D
# 1.0
# F
# 0
# 
# 
# 
# 输入描述:
# 连续输入一行等级一行学分,遇到等级为False则结束输入。
# 输出描述:
# 均绩保留两位小数。

# %%
flag = True
gl = {'A':4.0,'B':3.0,'C':2.0,'D':1.0,'F':0}
a1 = []
b1 = [] 
while flag:
    x = input()
    if x == 'False':
        flag = False
        break
    y = int(input())
    a1.append(gl[x]*y)
    b1.append(y)
print('%.2f'%(sum(a1)/sum(b1)))


# %% [markdown]
# 牛客网的登录系统需要验证用户名与密码,当二者都正确时才允许登录,其中管理员的用户名为'admis',密码为'Nowcoder666'。请你使用if-else语句,根据输入的用户名ID和密码,判断该用户等否登录。
# 输入描述:
# 第一行输入字符串表示用户名;
# 第二行输入字符串表示密码。
# 输出描述:
# 登录成功输出"Welcome!",登录失败输出"user id or password is not correct!"

# %%
username = input()
passwd = input()
if username == 'admis':
    if passwd == 'Nowcoder666':
        print('Welcome!')
    else:
        print('user id or password is not correct!')
else:
    print('user id or password is not correct!')

# %% [markdown]
# 描述
# 创建一个依次包含字符串'P'、'y'、't'、'h'、'o'和'n'的列表my_list,
# 使用print()语句一行打印字符串'Here is the original list:',再直接使用print()语句把刚刚创建的列表my_list整个打印出来,
# 输出一个换行,再使用print()语句一行打印字符串'The number that my_list has is:',
# 再使用len()函数获取列表my_list里面有多少个字符串,并使用print()函数一行打印该整数。
# 输入描述:
# 无
# 输出描述:
# 按题目描述进行输出即可(注意前后两个输出部分需以一个空行进行分隔)。
# Here is the original list:
# ['P', 'y', 't', 'h', 'o', 'n']
# 
# The number that my_list has is:
# 6

# %%
my_list = ['P','y','t','h','o','n']
print('Here is the original list:')
print(my_list)
print('')
print('The number that my_list has is:')
print(len(my_list))

# %% [markdown]
# 牛牛、牛妹和牛可乐都是Nowcoder的忠实用户,又到了一年一度的程序员节(10月24号),毫无疑问,他们都登录Nowcoder了,因为他们还没有刷完牛客题霸...
# Nowcoder的管理员想对他们发送一些简单登录问候消息,并对他们表达了节日祝福。
# 请创建一个依次包含字符串 'Niuniu' 、'Niumei' 和 'Niu Ke Le' 的列表users_list,
# 请使用for循环遍历列表user_list,依次对列表users_list中的名字输出一行类似 'Hi, Niuniu! Welcome to Nowcoder!' 的字符串,
# for循环结束后,最后输出一行字符串 "Happy Programmers' Day to everyone!"

# %%
users_list = ['Niuniu' ,'Niumei' , 'Niu Ke Le']
for i in users_list:
    print('Hi, %s! Welcome to Nowcoder!'%i)
print("Happy Programmers' Day to everyone!")

# %% [markdown]
# 牛牛刚学循环语句,你能教他使用for语句创建一个从10到50的数字列表吗?请输出完整列表,并输出列表的首尾元素检验是否是从10到50.
# 输入描述:
# 无
# 输出描述:
# 第一行输出完整列表。
# 第二行输出列表首元素和尾元素,空格间隔。

# %%
my_list=[]
for i in range(10,51):
    my_list.append(i)
print(my_list)
print(my_list[0],my_list[len(my_list)-1])


# %% [markdown]
# 描述
# 牛牛有一个列表,记录了他和同事们的年龄,你能用for循环遍历链表的每一个元素,将其累加求得他们年龄的总和与平均数吗?
# 输入描述:
# 一行输入多个整数,以空格间隔。
# 输出描述:
# 输出年龄总和与平均数,平均数保留1位小数,两个数字以空格间隔。

# %%
ages_list=[]
ages = input()
for i in ages.split():
    ages_list.append(int(i))
print(sum(ages_list),round(sum(ages_list) / len(ages_list),1)) 

# %% [markdown]
# 描述
# 通过给函数 range()指定第三个参数来创建一个列表my_list,其中包含 [0, 19]  中的所有偶数;再使用一个 for 循环将这些数字都打印出来(每个数字独占一行)。
# 输入描述:
# 无
# 输出描述:
# 按题目描述进行输出即可。

# %%
my_list=range(0,20,2)
for i in my_list:
    print(i)

# %% [markdown]
# 创建一个列表my_list,其中包括 [1, 50] 内全部能被5整除的数字;再使用一个 for 循环将这个列表中的数字都打印出来(每个数字独占一行)。
# 输入描述:
# 无
# 输出描述:
# 按题目描述进行输出即可。

# %%
my_list=[i for i in range(1,51) if i % 5 == 0]
for i in my_list:
    print(i)

# %% [markdown]
# 在Python中, * 代表乘法运算, ** 代表次方运算。
# 请创建一个空列表my_list,使用for循环、range()函数和append()函数令列表my_list包含底数2的 [1, 10] 次方,再使用一个 for 循环将这些次方数都打印出来(每个数字独占一行)。

# %%
my_list=[]
for i in range(1,11):
    my_list.append(2**i)
for i in my_list:
    print(i)

# %% [markdown]
# 描述
# Python支持的解析操作,可以根据某些元素创建列表。请你使用列表解析创建一个0-9的列表,并输出该列表。

# %%
my_list=[i for i in range(0,10)]
print(my_list)

# %% [markdown]
# 描述
# 牛妹有一个暑期想吃的东西的清单,你可以把它视作一个Python的list,['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']。牛妹决定从清单最后一种食物开始往前吃,每次吃掉一种食物就把它从list中pop掉,请使用while循环依次打印牛妹每次吃掉一种食物后剩余的清单。
# 输入描述:
# 无
# 输出描述:
# 每次去除列表末尾元素后,打印整个列表,直到列表为空,每个列表之间换行。
# 最初的列表不打印,空列表要打印。

# %%
my_list=['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']
while len(my_list) >= 0:
    if len(my_list) == 0:
        break
    if len(my_list) != 0:
        my_list.pop(len(my_list) - 1)
    
    print(my_list)

# %% [markdown]
# 创建一个依次包含字符串'Niuniu'、'Niumei'、'HR'、'Niu Ke Le'、'GURR' 和 'LOLO' 的列表users_list,
# 使用for循环遍历users_list,如果遍历到的用户名是 'HR' ,则使用print()语句一行打印字符串 'Hi, HR! Would you like to hire someone?',否则使用print()语句一行打印类似字符串 'Hi, Niuniu! Welcome to Nowcoder!' 的语句。

# %%
users_list=['Niuniu','Niumei','HR','Niu Ke Le','GURR' ,'LOLO' ]
for i in users_list:
    if i == 'HR':
        print('Hi, HR! Would you like to hire someone?')
    else:
        print('Hi, %s! Welcome to Nowcoder!'%i)

# %% [markdown]
# 牛牛在牛客网举行抽奖游戏,他准备了一个列表的元素[3, 45, 9, 8, 12, 89, 103, 42, 54, 79],打算依次输出这些元素。他让牛妹随便猜一个数字x,在输出的时候如果输出的元素等于牛妹猜的x,就不再继续输出。请你使用Python的for循环模拟这个输出过程,并根据输入的x使用break语句提前结束循环。
# 输入描述:
# 输入整数x表示牛妹猜的数字。
# 输出描述:
# 输出到x的前一个数字,x不用输出,每个数字单独成行。

# %%
my_list=[3, 45, 9, 8, 12, 89, 103, 42, 54, 79]
x=int(input())
for i in my_list:
    if i == x:
        break
    else:
        print(i)


# %% [markdown]
# 描述
# 牛客网在玩数数字游戏,员工一致认为13是一个“不详的数字”,请你使用for循环帮他们从1数到15,并使用continue语句跳过13。
# 输入描述:
# 无
# 输出描述:
# 输出数字1-15,跳过13,数字之间用空格间隔。

# %%
my_list=''
for i in range(1,16):
    if i == 13:
        continue
    else:
        my_list = my_list+str(i)+ ' '
print(my_list)

# %% [markdown]
# 牛牛正在做矩阵运算,他知道n个矩阵相加,就是将矩阵中每个位置的元素都乘上n。现有一个矩阵
#  ,请使用list记录该矩阵,对于牛牛输入的数字n,输出n个该矩阵相加的结果。
# 输入描述:
# 输入整数n,0<n<10
# 输出描述:
# 输出n个矩阵相加的结果,直接以二维列表的形式输出。

# %%
my_list=[[1,2,3],[4,5,6],[7,8,9]]
print_list=[]
n=int(input())
if n > 0 and n < 10:
    for i in my_list:
        flag=[]
        for j in i:
            flag.append(n*j)
        print_list.append(flag)
    print(print_list)

# %% [markdown]
# 牛客运动会上有一项双人项目,因为报名成功以后双人成员不允许被修改,因此请使用元组(tuple)进行记录。先输入两个人的名字,请输出他们报名成功以后的元组。
# 输入描述:
# 第一行以字符串的形式输入第一个人的名字。
# 第二行以字符串的形式输入第二个人的名字。
# 输出描述:
# 直接输出两个名字组成的元组。

# %%



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

4935同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值