牛客题霸在线编程Python题库——Python入门到实践40招循环语句 条件语句 元组

Posted lilrain小雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客题霸在线编程Python题库——Python入门到实践40招循环语句 条件语句 元组相关的知识,希望对你有一定的参考价值。

记录牛客刷题篇

牛客的在线编程开放了多种语言的专项练习,Python除了基础的上下,新出炉了数据分析和机器学习的专项练习,感兴趣的同学可以挑战挑战

而基础篇很多细小知识点能得到及时复习,难得的Python入门题库,非常适合入门的小伙伴练习哦

这里放入直通链接   点击这里开始练题

(四)循环语句 

14.字符列表的长度 (中等)

创建一个依次包含字符串'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()函数一行打印该整数。

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))

运行

Here is the original list:
['P', 'y', 't', 'h', 'o', 'n']

The number that my_list has is:
6

15.程序员节(中等)

牛牛、牛妹和牛可乐都是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 name in users_list:
    print(f"Hi, name! Welcome to Nowcoder!")
print("Happy Programmers' Day to everyone!")

运行

Hi, Niuniu! Welcome to Nowcoder!
Hi, Niumei! Welcome to Nowcoder!
Hi, Niu Ke Le! Welcome to Nowcoder!
Happy Programmers' Day to everyone!

16.累加和与平均数(简单)

创建一个列表my_list,其中包含[1, 1 000]中的所有整数,再使用 min() 和 max() 核实该列表确实是从 1 开始,到 1 000 结束的。此外,再对这个列表调用函数 sum(),看看 Python 将这一千个数字相加得到的结果是多少。最后,对这个列表的所有整数求取平均值,直接保留一位小数。

my_list = list(range(1, 1001))
print(min(my_list))
print(max(my_list))
print(sum(my_list))
print(sum(my_list)/1000)

运行

1
1000
500500
500.5

17.前十个偶数(简单)

通过给函数 range()指定第三个参数来创建一个列表my_list,其中包含 [0, 19]  中的所有偶数;再使用一个 for 循环将这些数字都打印出来(每个数字独占一行)。

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

运行

0
2
4
6
8
10
12
14
16
18

18.被5整除的数字(简单)

创建一个列表my_list,其中包括 [1, 50] 内全部能被5整除的数字;再使用一个 for 循环将这个列表中的数字都打印出来(每个数字独占一行)。

my_list = list(range(5,51,5))
for i in my_list:
    print(i)

运行

5
10
15
20
25
30
35
40
45
50

19.2的次方数(简单)

在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 j in my_list:
    print(j)

运行

2
4
8
16
32
64
128
256
512
1024

20.立方解析(入门)

使用列表解析生成一个列表my_list,其中包含前 10 个整数(也即[1, 10])的立方。再直接使用print()语句把刚刚创建的列表my_list整个打印出来(以列表形式,也即两边带方括号)。

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

运行

[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

21.团队分组(简单)

创建一个列表group_list,其中依次包含字符串 'Tom', 'Allen', 'Jane', 'William', 'Tony' 表示这个小组成员的名字。现有三项任务需要他们去完成,根据不同任务的繁琐度和实际情况需要分别派2人、3人、2人来完成,他们决定通过对列表分片来分配任务。

使用print()语句和切片来打印列表group_list的前两个元素表示去做第一个任务的人的名字,
再使用print()语句和切片来打印列表group_list的中间三个元素表示去做第二个任务的人的名字,
再使用print()语句和切片来打印列表group_list的后两个元素表示去做第三个任务的人的名字。

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

运行

['Tom', 'Allen']
['Allen', 'Jane', 'William']
['William', 'Tony']

(五)条件语句 

22.找到HR(简单)

创建一个依次包含字符串'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(f'Hi, i! Welcome to Nowcoder!')

运行

Hi, Niuniu! Welcome to Nowcoder!
Hi, Niumei! Welcome to Nowcoder!
Hi, HR! Would you like to hire someone?
Hi, Niu Ke Le! Welcome to Nowcoder!
Hi, GURR! Welcome to Nowcoder!
Hi, LOLO! Welcome to Nowcoder!

23.判断列表是否为空(入门)

创建一个空列表my_list,如果列表为空,请使用print()语句一行输出字符串'my_list is empty!',否则使用print()语句一行输出字符串'my_list is not empty!'。

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

运行

my_list is empty!

24.禁止重复注册(中等)

创建一个依次包含字符串'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!'的语句。(注:用户名的比较不区分大小写)

current_users = ['Niuniu','Niumei','GURR','LOLO']
new_users = ['GurR','Niu Ke Le','LoLo','Tuo Rui Chi']
for i in new_users:
    if i.upper() in current_users:
        print(f'The user name i has already been registered! Please change it and try again!')
    else:
        print(f'Congratulations, the user name i 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!

25.食堂点餐(中等)

某食堂今天中午售卖 'pizza':10块钱一份,'rice' :2块钱一份,'yogurt':5块钱一份,剩下的其他菜品都是8块钱一份。请创建如下一个order_list记录点单情况:['rice', 'beef', 'chips', 'pizza', 'pizza', 'yogurt', 'tomato', 'rice', 'beef']然后使用for循环遍历列表order_list,使用if-elif-else结构依次打印每份菜品及其价格,且每个菜品都独占一行,按照'beef is 8 dollars'的形式。并且在遍历过程中将价格相加,求对于这些点单记录,食堂总共营业收入多少?(单独输出一个整数)

order_list = ['rice', 'beef', 'chips', 'pizza', 'pizza', 'yogurt', 'tomato', 'rice', 'beef']
all = 0
price = 0
for i in order_list:
    if i == 'pizza':
        print(f"i is 10 dollars")
        price = 10
    elif i == 'rice':
        print(f"i is 2 dollars")
        price = 2
    elif i == 'yogurt':
        print(f"i is 5 dollars")
        price = 5
    else:
        print(f"i is 8 dollars")
        price = 8
    all = all + price
print(all)

运行

rice is 2 dollars
beef is 8 dollars
chips is 8 dollars
pizza is 10 dollars
pizza is 10 dollars
yogurt is 5 dollars
tomato is 8 dollars
rice is 2 dollars
beef is 8 dollars
61

(六)元组 

26.牛客运动会(入门)

又到了一年一度的牛客运动会,Tom和Andy报名参加了项目,但由于比赛前一天,Andy喝了太多碳酸饮料,导致身体不适,所以临时让Allen上场了,换人参赛需要修改参赛名单,请完成以下内容模拟整个过程。请创建一个依次包含字符串'Tom'和'Andy'的元组my_tuple,

先使用print()语句一行打印字符串'Here is the original tuple:',再使用for循环将元组my_tuple的内容打印出来;请使用try-except代码块执行语句my_tuple[1] = 'Allen',若引发TypeError错误,先输出一个换行,再使用print()语句一行打印字符串"my_tuple[1] = 'Allen' cause cause a TypeError: 'tuple' object does not support item assignment";再重新对my_tuple赋值一个新元组,新元组依次由字符串'Tom'和'Allen'构成。输出一个换行,先使用print()语句一行打印字符串'The tuple was changed to:',再使用for循环将元组my_tuple的内容打印出来,确定修改无误。

my_tuple = ('Tom','Andy')
print('Here is the original tuple:')
for i in my_tuple:
    print(i)
try:
    my_tuple[1] = 'Allen'
except TypeError:
    print()
    print("my_tuple[1] = 'Allen' cause a TypeError: 'tuple' object does not support item assignment")
my_tuple = ('Tom','Allen')
print()
print('my_tuple was changed to:')
for i in my_tuple:
    print(i)

运行

Here is the original tuple:
Tom
Andy

my_tuple[1] = 'Allen' cause a TypeError: 'tuple' object does not support item assignment

my_tuple was changed to:
Tom
Allen

陆续将更新字典篇函数篇综合实践篇。提前开练点这里点击这里开始练题

本系列内容非必要不提供代码块解读注释,可直接看文章在自己的编译器做题

此文仅为记录做题,最优解法,对任何步骤有不懂的,欢迎交流!

以上是关于牛客题霸在线编程Python题库——Python入门到实践40招循环语句 条件语句 元组的主要内容,如果未能解决你的问题,请参考以下文章

牛客题霸——二分查找(Javascript)

牛客题霸 NC10 大数乘法

牛客题霸 NC26 括号生成

牛客题霸 [分糖果问题] C++题解/答案

牛客题霸 NC18 顺时针旋转矩阵

牛客题霸 NC23 划分链表