✅本次练习的题目大部分来自牛客网的Python基础题库,想要学习Python和巩固基础的可以现在打开牛客来一起学习吧。
编程练习直达链接由此进入免费的刷题练习网站
前言
编程刷题是必不可少的,在刷题过程中你会认识到自己学习的不足之处,发现日常编程某一知识点的不足。这样及时发现和弥补短板,但是网络题库这么多到底哪些好呢?我觉得牛客就挺不错的,不仅可以针对训练,还有提供牛客手机app可以让我们充分利用碎片时间学习(如果有在线编程的需要,还是得到电脑牛客网网站上进行)。这样一个网站足够满足我们的刷题需求了。话不多说下面我分享一些我在牛客网刷的题,一起来看看吧!
文章目录
前言
题目一:毕业生就业调查
题目要求
我的分析
我的答案
题目二:梦想的大学
题目要求
我的分析
我的答案
题目三:拯救被污染的字符串
题目要求
我的分析
我的答案
题目四:游乐园的门票
题目要求
我的分析
我的答案
题目五:栈和队列的实现
题目要求
我的分析
我的答案
结语
题目一:毕业生就业调查
题目要求
我的分析
本题难度不大,我的思路是将survey_list中每一个元素通过字典的get()方法,判断其是否在字典result_dict中。get方法具体使用如下:
描述
Python 字典get()函数返回指定键的值。
语法
dict.get(key[, value])
参数
- key — 字典中要查找的键。
- value — 可选,如果指定键的值不存在时,返回该默认值。
返回值
返回指定键的值,如果键不在字典中返回默认值None或者设置的默认值。
我的答案
survey_list = ['Niumei','Niu Ke Le','GURR','LOLO'] result_dict = {'Niumei': 'Nowcoder','GURR': 'HUAWEI'} for people in survey_list: if result_dict.get(people) == None: #判断列表中的人是否在字典中 print('Hi, %s! Could you take part in our graduation survey" />
题目二:梦想的大学
题目要求
示例
输入:TomFudan UniversityYesBenPeking UniversityYesAndyTsinghua UniversityNo输出:If you have the chance, which university do you want to go to most" />内置函数sorted()的使用方法
列表,字典的使用方法
我的答案
survey_dict = {}while 1: print('If you have the chance, which university do you want to go to most?') print('What is your name?') name = input() print('Which university do you want to go to most?') university = input() survey_dict[name] = university print("Is there anyone who hasn't been investigated yet?") res = input() if res == 'No': breakfor name in sorted(survey_dict.keys()): print("I'am %s. I'd like to go to %s if I have the chance!" % (name,survey_dict[name]))
其中我的代码最后一段:
print("I'am %s. I'd like to go to %s if I have the chance!" % (name,survey_dict[name]))
换成以下代码也是很好的:
print(f"I'am {name}. I'd like to go to {survey_dict[name]} if I have the chance!")
题目三:拯救被污染的字符串
题目要求
我的分析
本题题目知识点考察比较单一,主要是让我们复习一下字符串中join和split方法的使用,如果能够第一时间想到使用这些方法那么这题是很快可以写出,下面就来复习join和split方法的使用:
描述
Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法
str.join(sequence)
参数
- sequence -- 要连接的元素序列。
返回值
返回通过指定字符连接序列中元素后生成的新字符串。
字符串中split方法的使用
我的答案
my_str = 'I am$ N$iuniu$, an$d I $am stu$dying in $Now$coder!'my_list = my_str.split('$')print(my_list)new_str = ''.join(my_list)print(new_str)
题目四:游乐园的门票
题目要求
示例:
输入:0.51.2quit输出:Please tell me your height!Enter 'quit' to end the program.Your admission cost is 0 yuan.Please tell me your height!Enter 'quit' to end the program.Your admission cost is 80 yuan.Please tell me your height!Enter 'quit' to end the program.
我的分析
本题主要考察了循环语句的使用方法和数据类型的强制转换方法,考点主要在"不同身高的人需购买不同的门票",我们这里使用" if - elif - else"语句会相对简便
我的答案
while 1: print("Please tell me your height!\nEnter 'quit' to end the program.") read = input() #用read变量接收我们读入的身高 if read == 'quit': break if float(read) < 1.0: print('Your admission cost is 0 yuan.') elif float(read) < 1.2: print('Your admission cost is 80 yuan.') else: print('Your admission cost is 150 yuan.')
题目五:栈和队列的实现
题目要求
示例
输入:54321输出:[5, 4][5, 4][5][4][5, 3, 2, 1][4, 3, 2, 1]1 2 3 5
我的分析
本题主要考察的是我们对栈和队列放值和取值的顺序的考察
栈(先进来的后出去):是一种线性数据结构,用先进后出或者是后进先出的方式存储数据,栈中数据的插入删除操作都是在栈顶端进行
队列(先进来的先出去):队列是一种只允许在一端进行插入操作,而在另一端进行删除操作的线性表
我的答案
- lst1用来实现栈的列表,lst2用来实现队列的列表
- lst_append()函数是用来向这两个列表中添加元素
- lst_print()函数是用来打印这两个列表
lst1 = []lst2 = []def lst_append(n): for i in range(n): num = int(input()) lst1.append(num) lst2.append(num)def lst_print(): print(lst1) print(lst2)lst_append(2)lst_print() lst1.pop()lst2.pop(0)lst_print() lst_append(3)lst_print()while len(lst1): print(lst1[-1], end=' ') lst1.pop()
结语
:别忘了刷题哟由此进入免费好用的刷题网站
:感谢各位能够看到这里:在鲁迅一篇未发表的文章中说过:“代码看懂了不是懂✨一定要自己实际操作哇✨这样才能更好的理解和吸收。”
最后来一句:一个人可以在任何他怀有无限热忱的事情上成功,让我们一起进步吧✨✨