1.输入输出
NP1 Hello,World
题目描述:
将字符串 'Hello World!' 存储到变量str中,再使用print语句将其打印出来。
输入描述:
无
输出描述:
一行输出字符串Hello World!
答案示例代码:
str='Hello World!'
print(str)
NP2 多行输出
题目描述:
将字符串 'Hello World!' 存储到变量str1中,再将字符串 'Hello Nowcoder!' 存储到变量str2中,再使用print语句将其打印出来(一行一个变量)。
输入描述:
无
输出描述:
第一行输出字符串Hello World!,第二行输出字符串Hello Nowcoder!
答案示例代码:
str1 = 'Hello World!'
str2 = 'Hello Nowcoder!'
print(str1)
print(str2)
NP3 读入字符串
题目描述:
小白正在学习Python,从变量输出开始。请使用input函数读入一个字符串,然后将其输出。
输入描述:
输入一行字符串。
输出描述:
将读入的变量输出。
答案示例代码:
s=input()
print(s)
NP4 读入整数数字
题目描述:
在学会读入字符串以后,小白还想要读入整数,请你帮他使用input函数读入数字并输出数字与变量类型。
输入描述:
输入只有整数。
输出描述:
将输入的数字输出,同时换行输出变量类型。
答案示例代码:
s = int(input())
print(s)
print(type(s))
NP5 格式化输出(一)
题目描述:
牛牛、牛妹和牛可乐正在Nowcoder学习Python语言,现在给定他们三个当中的某一个名字name,
假设输入的name为Niuniu,则输出 I am Niuniu and I am studying Python in Nowcoder!
请按以上句式输出相应的英文句子。
输入描述:
一行一个字符串表示名字。
输出描述:
假设输入的name为Niuniu,则输出I am Niuniu and I am studying Python in Nowcoder!
请按以上句式输出相应的英文句子。
答案示例代码:
name=input()
print(f'I am {name} and I am studying Python in Nowcoder!')
NP6 牛牛的小数输出
题目描述:
牛牛正在学习Python的输出,他想要使用print函数控制小数的位数,你能帮助它把所有读入的数据都保留两位小数输出吗?
输入描述:
读入一个浮点类型小数。
输出描述:
保留两位小数输出。
答案示例代码:
n = input()
m = float(n)
# print('%.2f' % m)
print(f'{m:.2f}')
2.类型转换
NP7 小数化整数
题目描述:
日常生活中我们会遇到很多小数,但是有的人不喜欢小数,因此会用四舍五入的方式将其去掉。在Python中我们更加简单,可以利用强制类型转换将小数转变成整数,请你试一试。
输入描述:
输入一个浮点小数。
输出描述:
输出将其强制类型转换为int后的结果。
答案代码示例:
n=float(input())
print(int(n))
NP8 为整数增加小数点
题目描述:
虽说很多人讨厌小数点,但是有时候小数点是必不可少的一项,请你使用强制类型转换为输入的整数增加小数点,并输出改变类型后的变量类型。
输入描述:
输入一个整数。
输出描述:
输出强制类型转换后的结果,换行再输出变量类型。
答案代码示例:
n=int(input())
print(float(n))
print(type(float(n)))
NP9 十六进制数字的大小
题目描述:
计算的世界,除了二进制与十进制,使用最多的就是十六进制了,现在使用input读入一个十六进制的数字,输出它的十进制数字是多少?
输入描述:
input读入一个十六进制数字,按照字符串的形式包括数字0-9、字母A-F。
输出描述:
输出读入数字的十进制大小。
答案代码示例:
n=input()
m = int(n,16)
print(m)
3.字符串
NP10 牛牛最好的朋友
题目描述:
牛牛有两个最好的朋友,他们的名字分别用input读入记录在两个字符串中,请使用字符串连接(+)帮助牛牛将两个朋友的名字依次连接在一个字符串中输出。
输入描述:
依次输入两个字符串
输出描述:
输出连接后的字符串
答案代码示例:
n1=input()
n2=input()
print(n1+n2)
NP11 单词的长度
题目描述:
牛妹正在学英语,但是背单词实在是太痛苦了,她想让你帮她写一个小程序,能够根据输入的单词,快速得到单词的长度。
输入描述:
输入一个字符串,仅包含大小写字母。
输出描述:
输出字符串的长度。
答案代码示例:
n=input()
print(len(n))
NP12 格式化输出(二)
题目描述:
牛牛、牛妹和牛可乐都是Nowcoder的用户,某天Nowcoder的管理员希望将他们的用户名以某种格式进行显示,
现在给定他们三个当中的某一个名字name,请分别按全小写、全大写和首字母大写的方式对name进行格式化输出(注:每种格式独占一行)。
输入描述:
一行一个字符串表示名字。
输出描述:
请分别按全小写、全大写和首字母大写的方式对name进行格式化输出(注:每种格式独占一行)。
答案代码示例:
n=input()
print(n.lower())
print(n.upper())
print(n.title())
NP13 格式化输出(三)
题目描述:
牛牛、牛妹和牛可乐都是Nowcoder的用户,某天Nowcoder的管理员由于某种错误的操作导致他们的用户名的左右两边增加了一些多余的空白符(如空格或'\t'等),
现在给定他们三个当中的某一个名字name,请输出name去掉两边的空白符后的原本的内容。
输入描述:
一行一个字符串表示名字name(注:name两边带有一些多余的空白符)。
输出描述:
一行输出name去掉两边的空白符后的原本的内容。
答案代码示例:
n=input()
print(n.strip())
NP14 不用循环语句的重复输出
题目描述:
牛牛正在学习Python,他想多次输出朋友的名字,但是因为还没有学习循环语句,他不知道该怎么输出,你能够帮助他将输入的朋友的名字重复输出100次吗?(提示:不可以使用循环或者递归语句,使用字符串 * 运算)
输入描述:
输入一个字符串。
输出描述:
输出重复100次之后的字符串,字符串之间没有间隔。
答案代码示例:
n= input()
print(n*100)
NP15 截取用户名前10位
题目描述:
牛客网正在录入用户的昵称,但是有的昵称太长了,对于这些过长的昵称,牛牛觉得截取昵称字符串前10个字符就可以了,你可以帮他写一个程序吗?
输入描述:
输入一个字符串,长度一定不低于10。
输出描述:
输出截取前10个字符后的子串。
答案代码示例:
n=input()
print(n[:10])
4.列表
NP16 发送offer
题目描述:
某公司在面试结束后,创建了一个依次包含字符串 'Allen' 和 'Tom' 的列表offer_list,作为通过面试的名单。
请你依次对列表中的名字发送类似 'Allen, you have passed our interview and will soon become a member of our company.' 的句子。
但由于Tom有了其他的选择,没有确认这个offer,HR选择了正好能够确认这个offer的Andy,所以请把列表offer_list中 'Tom' 的名字换成 'Andy' ,
再依次发送类似 'Andy, welcome to join us!' 的句子。
输入描述:
无
输出描述:
按题目描述进行输出即可。
Allen, you have passed our interview and will soon become a member of our company.
Tom, you have passed our interview and will soon become a member of our company.
Allen, welcome to join us!
Andy, welcome to join us!
答案代码示例:
print('Allen, you have passed our interview and will soon become a member of our company.')
print('Tom, you have passed our interview and will soon become a member of our company.')
print('Allen, welcome to join us!')
print('Andy, welcome to join us!')
NP17 生成列表
题目描述:
一串连续的数据用什么记录最合适,牛牛认为在Python中非列表(list)莫属了。现输入牛牛朋友们的名字,请使用list函数与split函数将它们封装成列表,再整个输出列表。
输入描述:
输入一串字符串,它们之间通过空格间隔开。
输出描述:
输出封装后的列表。
答案代码示例:
name =input().split(' ')
name_list=list()
for i in name:
name_list.append(i)
print(name_list)
NP18 生成数字列表
题目描述:
牛牛在牛客网系统录入了一连串数字,数字之间依靠逗号隔开,你能帮助他将这些数字存储在列表中吗,列表元素以int的形式。
输入描述:
输入一行整数,数字之间以空格间隔。
输出描述:
输出这些数字组成的完整列表。
答案代码示例:
list1=[int(i) for i in input().split()]
print(list1)
NP19 列表的长度
题目描述:
牛牛学会了使用list函数与split函数将输入的连续字符串封装成列表,你能够帮他使用len函数统计一些公输入了多少字符串,列表中有多少元素吗?
输入描述:
输入一行多个字符串,字符串之间通过空格间隔。
输出描述:
输出列表的长度。
答案代码示例:
print(len(input().split()))
NP20 增加派对名单(一)
题目描述:
为庆祝驼瑞驰在牛爱网找到合适的对象,驼瑞驰通过输入的多个连续字符串创建了一个列表作为派对邀请名单,在检查的时候发现少了他最好的朋友“Allen”的名字,你能使用append函数将这个名字加到列表末尾吗?添加完成请输出完整列表。
输入描述:
输入多个连续的字符串表示名字,以空格间隔。
输出描述:
输出添加完Allen后的完整列表。
答案代码示例:
list1=input().split()
list2=[]
for i in list1:
list2.append(i)
list2.append('Allen')
print(list2)
NP21 增加派对名单(二)
题目描述:
为庆祝驼瑞驰在牛爱网找到合适的对象,驼瑞驰通过输入的多个连续字符串创建了一个列表作为派对邀请名单,在检查的时候发现少了他最好的朋友“Allen”的名字,因为是最好的朋友,他想让这个名字出现在邀请列表的最前面,你能用insert函数帮他实现吗?请输出插入后的完整列表。
输入描述:
输入多个连续的字符串表示名字,用空格间隔。
输出描述:
输出插入名字后的完整列表。
答案代码示例:
list1=input().split()
list2=[]
for i in list1:
list2.append(i)
list2.insert(0,'Allen')
print(list2)
NP22 删除简历
题目描述:
牛牛在各大互联网公司投入了简历,公司的名字通过字符串的形式在一行中输入,请用列表记录。现在牛牛已经确定了第一所公司的HR表露了不录用他的态度,请你使用del函数帮助牛牛从列表中删除第一个元素,然后输出列表。
输入描述:
以字符串的形式输入公司名字,字符串之间以空格间隔。
输出描述:
输出删除第一个元素后的完整列表。
答案代码示例:
list1 =input().split()
list2 =[]
for i in list1:
list2.append(i)
del(list2[0])
print(list2)
NP23 删除好友
题目描述:
牛妹有一个坏习惯,一旦与朋友吵架了,她就要删除好友。现在输入一个行多个字符串表示牛妹的朋友,请把它们封装成列表,然后再输入与牛妹吵架的朋友的名字,请使用remove函数帮她从列表中删除这个好友,然后输出完整列表。
输入描述:
第一行输入多个字符串表示朋友的名字,以空格间隔。
第二行输入吵架的朋友的名字,必定是第一行中出现的名字。
输出描述:
输出删除好友后的完整列表。
答案代码示例:
list1= input().split()
name =input()
list2=[]
for i in list1:
list2.append(i)
list2.remove(name)
print(list2)
NP24 淘汰排名最后的学生
题目描述:
某实验班实行末位淘汰制,期中考试需要淘汰末三位同学。现输入一行多个字符串表示按分数排名的该班级同学的名字(数量一定不少于三个),请你使用list将其封装为列表,然后使用三次pop函数,去掉末三位同学的名字,最后输出淘汰后的班级名字列表。
输入描述:
输入一行多个字符串表示同学名字,最少不少于3个名字,以空格间隔。
输出描述:
输出删除末三位后的完整列表。
答案代码示例:
list1=input().split()
# del list1[-3:]
for i in range(3):
list1.pop()
print(list1)
NP25 有序的列表
题目描述:
创建一个依次包含字符串'P'、'y'、't'、'h'、'o'和'n'的列表my_list,先使用sorted函数对列表my_list进行临时排序,第一行输出排序后的完整列表,第二行输出原始的列表。再使用sort函数对列表my_list进行降序排序,第三行输出排序后完整的列表。
输入描述:
无
输出描述:
第一行输出临时排序后的列表;
第二行输出原始的列表;
第三行输出完成降序排序后的列表。
答案代码示例:
list1= ['P','y','t','h','o','n']
print(sorted(list1))
print(list1)
list1.sort(reverse=True)
print(list1)
NP26 牛牛的反转列表
题目描述:
牛牛有一个列表记录了各个朋友的喜欢的数字,num = [3, 5, 9, 0, 1, 9, 0, 3],请你帮他创建列表,然后使用reverse函数将列表反转输出。
输入描述:
无
输出描述:
第一行输出创建好的原始的列表,第二行输出反转后的列表。
答案代码示例:
num =[3, 5, 9, 0, 1, 9, 0, 3]
print(num[::-1])
NP27 朋友们的喜好
题目描述:
牛牛有一个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。
输入描述:
无
输出描述:
[['Niumei', 'YOLO', 'Niu Ke Le', 'Mona'], ['pizza', 'fish', 'potato', 'beef'], [3, 6, 0, 3]]
答案代码示例:
list=[]
name = ['Niumei', 'YOLO', 'Niu Ke Le', 'Mona']
food = ['pizza', 'fish', 'potato', 'beef']
number = [3, 6, 0, 3]
list.append(name)
list.append(food)
list.append(number)
print(list)
NP28 密码游戏
题目描述:
牛牛和牛妹一起玩密码游戏,牛牛作为发送方会发送一个4位数的整数给牛妹,牛妹接收后将对密码进行破解。
破解方案如下:每位数字都要加上3再除以9的余数代替该位数字,然后将第1位和第3位数字交换,第2位和第4位数字交换。
请输出牛妹破解后的密码。
输入描述:
输入一个四位数的整数。
输出描述:
输出破解后的密码,以四位数的形式。
答案代码示例:
number=[(int(n)+3)%9 for n in input() ]
print(f"{number[2]}{number[3]}{number[0]}{number[1]}")
NP29 用列表实现栈
题目描述:
栈是一种先进后出的数据结构,类似我们生活中挤电梯,最后进入的肯定是先出来,现我们用Python的列表来模拟栈。假设初始的列表为 stack = [1, 2, 3, 4, 5],请将其视作栈,使用pop函数弹出末尾两个元素,再使用append函数将输入元素加入到栈中,每次操作完成后都要输出整个列表。
输入描述:
输入要加入栈中的整数。
输出描述:
第一行输出第一次出栈后的列表;
第二行输出第二次出栈后的列表;
第三行输出元素入栈后的列表。
答案代码示例:
stack =[1,2,3,4,5]
stack.pop()
print(stack)
stack.pop()
print(stack)
a =int(input())
stack.append(a)
print(stack)
NP30 用列表实现队列
题目描述:
队列是一种先进先出的数据结构,类似食堂排队打饭,先入队的元素当然要先出队,先请用Python列表模拟队列。现有一列表 queue = [1, 2, 3, 4, 5] 被视作队列,请使用pop函数连续两次取出队首元素,再使用append函数将输入元素添加到队尾,每次操作后都要输出完整的列表。
输入描述:
输入一个整数表示要添加到队列的元素。
输出描述:
第一行输出第一次取出队首后的列表;
第二行输出第二次取出队首后的列表;
第三行输出添加元素到队列后的列表。
答案代码示例:
queue =[1,2,3,4,5]
n =int(input())
queue.pop(0)
print(queue)
queue.pop(0)
print(queue)
queue.append(n)
print(queue)
NP31 团队分组
题目描述:
创建一个列表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[:2])
print(group_list[1:4])
print(group_list[-2:])
5.运算符
NP32 牛牛的加减器
题目描述:
为了辅导刚上小学的妹妹做功课,牛牛想用Python写一个加减器帮助妹妹巩固加减运算。现要求输入两个数字x与y,分别输出x+y的结果和x-y的结果。
输入描述:
分两行输入两个整数。
输出描述:
分两行输出加与减的结果。
答案代码示例:
a= int(input())
b= int(input())
print(a+b)
print(a-b)
NP33 乘法与幂运算
题目描述:
刚刚学习Python的牛牛发现,同样的符号出现两次可能代表不同的运算,比如*与**。现输入两个数字x与y,请分别计算x * y 与 xy。
输入描述:
分两行输入两个整数x与y。
输出描述:
第一行输出x * y,第二行输出xy
答案代码示例:
x=int(input())
y=int(input())
print(x*y)
print(x**y)
NP34 除法与取模运算
题目描述:
我们都知道在计算机里除法有两种,一种是整除,结果有商和余数,另一种则是将其除到有小数。现输入两个数字x与y,分别计算两种除法下x/y的结果。
输入描述:
分两行输入两个整数x与y,其中y不为0.
输出描述:
第一行输出x除以y的商和余数;
第二行输出x除以y的非整除结果,保留两位小数。
答案代码示例:
x=int(input())
y=int(input())
print(x//y,x%y)
print('%.2f'%(x/y))
NP35 朋友的年龄是否相等
题目描述:
牛牛有一个习惯,新认识一个朋友他就想知道这个朋友和自己的年龄是不是一样大,输入两个整数表示牛牛的年龄和朋友的年龄,请输出牛牛的年龄是否等于朋友的年龄的比较结果?
输入描述:
一行输入两个整数,以空格间隔。
输出描述:
直接输出比较结果(True或者False)
答案代码示例:
a,b=input().split()
print(a==b)
NP36 谁的数字大
题目描述:
牛牛在和牛妹玩猜数字游戏,他们想请你写一个快速判断牛牛的数字是不是大于牛妹数字的程序。输入两个整数,以空格间隔,输出第一个数字是否大于第二个数字,第一个数字是否小于第二个数字。
输入描述:
一行输入两个整数,以空格间隔。
输出描述:
第一行输出第一个数字是否大于第二个数字,True 或者 False;
第二行输出第一个数字是否小于第二个数字,True 或者 False。
答案代码示例:
a,b=input().split()
print(a>b)
print(a<b)
NP37 不低于和不超过
题目描述:
牛妹去游乐园,对于某项目,如果牛妹的身高k不超过某个标准x,就不需要收取额外费用,但是该项目有需要身高不低于y才可以保障安全。现依次输入三个数字k、x、y,牛妹想让你帮她比较一下,她的身高是否不超过x,是否不低于y。
输入描述:
一行输入三个正浮点数k、x、y,三个数字通过空格间隔。
输出描述:
第一行输出k是否不超过x,True或者False;
第二行输出k是否不低于y,True或者False。
答案代码示例:
k,x,y=map(float,input().split())
print(k<=x)
print(k>=y)
NP38 牛牛的逻辑运算
题目描述:
牛牛想要锻炼自己的逻辑能力,于是输入了两个整型变量x和y,分别判断它们的与、或、非关系,你能帮他输出x与y,x或y,非x,非y的值吗?
输入描述:
输入两个整数x和y,通过空格间隔。
输出描述:
每行分别直接输出x与y,x或y,非x,非y的值,前两个为数值,后两个为布尔值。
答案代码示例:
x,y=map(int,input().split())
print(x and y,x or y,not x,not y,sep="\n" )
NP39 字符串之间的比较
题目描述:
正在学习Python的牛可乐,对Python里面的大小比较很疑惑。他知道数字之间可以相等,有大小关系,但是字符串之间怎么比较,他就很纳闷了。现在牛可乐输入两个字符串s1与s2,请你帮他比较这两个字符串是否相等,两个字符串各自调用lower函数后还是否相等。
输入描述:
两行输入两个字符串,其中字符仅包含大小写字母和数字。
输出描述:
第一行输出s1是否与s2相等的布尔值;
第二行输出s1.lower()是否与s2.lower()相等的布尔值。
答案代码示例:
s1=input()
s2=input()
print(s1==s2)
print(s1.lower()==s2.lower())
NP40 俱乐部的成员
题目描述:
牛客网内部有一个刷题俱乐部,是大家比拼刷题与交流算法的地方。现在给出俱乐部的名单,请以列表的形式记录它们,并使用Python的成员运算检验给出的名字name是否属于这个俱乐部?(名字区分大小写)
输入描述:
第一行输入俱乐部的名单,以多个字符串的形式,字符串之间用空格间隔;
第二行输入要查询的名字name。
输出描述:
直接输出这个名字是否属于俱乐部名单的布尔值,True或者False。
答案代码示例:
name_list =input().split()
name =input()
print(name in name_list)
NP41 二进制的位运算
题目描述:
Python有位运算,是直接将数字看成二进制,直接对二进制数字的每一位进行运算。现输入两个十进制整数x、y,请计算它们的位与、位或,输出按照十进制的形式。
输入描述:
一行输入两个整数x、y,以空格间隔。
输出描述:
第一行输出x位与y;
第二行输出x位或y。
答案代码示例:
x,y=map(int,input().split())
print(x&y)
print(x|y)
NP42 公式计算器
题目描述:
牛客网为员工举行了一项快速心算大赛,需要程序员大大写一款涉及加减乘除的验算小程序。假如输入的数字分别是x、y、z、k,请输出x+y的结果与z-k的结果相乘的值。
输入描述:
一行输入四个整数,以空格间隔。
输出描述:
直接输出计算结果,结果一定是整数。
答案代码示例:
x,y,z,k=map(int,input().split())
print((x+y)*(z-k))
6.条件语句
NP43 判断布尔值
题目描述:
Python的条件语句依靠将运算结果转变成布尔值后进行判断,然后分支,如果我们直接判断布尔值会怎么样呢?输入布尔变量,使用条件语句判断,如果为真则输出"Hello World!",否则输出"Erros!"。
输入描述:
输入0 或者 1。
输出描述:
输出"Hello World!"或者"Erros!"。
答案代码示例:
a=bool(int(input()))
if(a):
print("Hello World!")
else:
print("Erros!")
NP44 判断列表是否为空
题目描述:
创建一个空列表my_list,如果列表为空,请使用print()语句一行输出字符串'my_list is empty!',
否则使用print()语句一行输出字符串'my_list is not empty!'。
输入描述:
无
输出描述:
按题目描述进行输出即可。
答案代码示例:
my_list=[]
if not my_list:
print('my_list is empty!')
else:
print('my_list is not empty!')
NP45 禁止重复注册
题目描述:
创建一个依次包含字符串'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_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!')
NP46 菜品的价格
题目描述:
牛客食堂今天准备了很多丰盛的午餐, 'pizza':10块钱一份,'rice' :2块钱一份,'yogurt':5块钱一份,剩下的其他菜品都是8块钱一份。牛牛在某窗口点餐,请你根据他输入的字符串,使用if-elif-else语句判断牛牛需要花费多少钱?
输入描述:
输入一个字符串表示菜品。
输出描述:
输出该菜品的价格。
答案代码示例:
n=input()
if n=='pizza':
print('10')
elif n=='rice':
print('2')
elif n=='yogurt':
print('5')
else:
print('8')
NP47 牛牛的绩点
题目描述:
牛牛在门头沟大学学习,一学年过去了,需要根据他的成绩计算他的平均绩点,假如绩点与等级的对应关系如下表所示。请根据输入的等级和学分数,计算牛牛的均绩(每门课学分乘上单门课绩点,求和后对学分求均值)。
A | 4.0 |
B | 3.0 |
C | 2.0 |
D | 1.0 |
F | 0 |
输入描述:
连续输入一行等级一行学分,遇到等级为False则结束输入。
输出描述:
均绩保留两位小数。
答案代码示例:
dict={"A":4.0,"B":3.0,"C":2.0,"D":1.0,"F":0}
list1=[]
list2=[]
while True:
grade=input()
if(grade=="False"):
break
else:
score=int(input())
list1.append(dict[grade]*score)
list2.append(score)
print("%.2f"%(sum(list1)/sum(list2)))
NP48 验证登录名与密码
题目描述:
牛客网的登录系统需要验证用户名与密码,当二者都正确时才允许登录,其中管理员的用户名为'admis',密码为'Nowcoder666'。请你使用if-else语句,根据输入的用户名ID和密码,判断该用户等否登录。
输入描述:
第一行输入字符串表示用户名;
第二行输入字符串表示密码。
输出描述:
登录成功输出"Welcome!",登录失败输出"user id or password is not correct!"
答案代码示例:
a=input()
b=input()
if a=='admis'and b=='Nowcoder666':
print("Welcome!")
else:
print("user id or password is not correct!")
7.循环语句
NP49 字符列表的长度
题目描述:
创建一个依次包含字符串'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))
NP50 程序员节
题目描述:
牛牛、牛妹和牛可乐都是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!"
输入描述:
无
输出描述:
按题目描述进行输出即可。
Hi, Niuniu! Welcome to Nowcoder!
Hi, Niumei! Welcome to Nowcoder!
Hi, Niu Ke Le! Welcome to Nowcoder!
Happy Programmers' Day to everyone!
答案代码示例:
users_list=['Niuniu','Niumei','Niu Ke Le']
for i in users_list:
print('Hi, {}! Welcome to Nowcoder!'.format(i))
print("Happy Programmers' Day to everyone!")
NP51 列表的最大与最小
题目描述:
牛牛刚学循环语句,你能教他使用for语句创建一个从10到50的数字列表吗?请输出完整列表,并输出列表的首尾元素检验是否是从10到50.
输入描述:
无
输出描述:
第一行输出完整列表。
第二行输出列表首元素和尾元素,空格间隔。
答案代码示例:
num_list=[]
for i in range(10,51):
num_list.append(i)
print(num_list)
print(num_list[0],num_list[-1])
NP52 累加数与平均值
题目描述:
牛牛有一个列表,记录了他和同事们的年龄,你能用for循环遍历链表的每一个元素,将其累加求得他们年龄的总和与平均数吗?
输入描述:
一行输入多个整数,以空格间隔。
输出描述:
输出年龄总和与平均数,平均数保留1位小数,两个数字以空格间隔。
答案代码示例:
age = []
for i in input().split():
age.append(int(i))
avg=sum(age) / len(age)
print(sum(age),round(avg,1))
NP53 前10个偶数
题目描述:
通过给函数 range()指定第三个参数来创建一个列表my_list,其中包含 [0, 19] 中的所有偶数;再使用一个 for 循环将这些数字都打印出来(每个数字独占一行)。
输入描述:
无
输出描述:
按题目描述进行输出即可。
答案代码示例:
my_list=[]
for i in range(0,20,2):
print(i)
NP54 被5整除的数字
题目描述:
创建一个列表my_list,其中包括 [1, 50] 内全部能被5整除的数字;再使用一个 for 循环将这个列表中的数字都打印出来(每个数字独占一行)。
输入描述:
无
输出描述:
按题目描述进行输出即可。
答案代码示例:
my_list=[]
for i in range(5,51,5):
print(i)
NP55 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)
print(2**i)
NP56 列表解析
题目描述:
Python支持的解析操作,可以根据某些元素创建列表。请你使用列表解析创建一个0-9的列表,并输出该列表。
输入描述:
无
输出描述:
输出创建的完整列表。
答案代码示例:
print(list(range(0,10)))
NP57 格式化清单
题目描述:
牛妹有一个暑期想吃的东西的清单,你可以把它视作一个Python的list,['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']。牛妹决定从清单最后一种食物开始往前吃,每次吃掉一种食物就把它从list中pop掉,请使用while循环依次打印牛妹每次吃掉一种食物后剩余的清单。
输入描述:
无
输出描述:
每次去除列表末尾元素后,打印整个列表,直到列表为空,每个列表之间换行。
最初的列表不打印,空列表要打印。
答案代码示例:
list=['apple','ice cream','watermelon','chips','hotdogs','hotpot']
while len(list):
list.pop()
print(list)
if list==0:
break
NP58 找到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!' 的语句。
输入描述:
无
输出描述:
按题目描述进行输出即可。
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!
答案代码示例:
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, {}! Welcome to Nowcoder!'.format(i))
NP59 提前结束的循环
题目描述:
牛牛在牛客网举行抽奖游戏,他准备了一个列表的元素[3, 45, 9, 8, 12, 89, 103, 42, 54, 79],打算依次输出这些元素。他让牛妹随便猜一个数字x,在输出的时候如果输出的元素等于牛妹猜的x,就不再继续输出。请你使用Python的for循环模拟这个输出过程,并根据输入的x使用break语句提前结束循环。
输入描述:
输入整数x表示牛妹猜的数字。
输出描述:
输出到x的前一个数字,x不用输出,每个数字单独成行。
答案代码示例:
list=[3, 45, 9, 8, 12, 89, 103, 42, 54, 79]
x=int(input())
for i in list:
if i==x:
break
else:
print(i)
NP60 跳过列表的某个元素
题目描述:
牛客网在玩数数字游戏,员工一致认为13是一个“不详的数字”,请你使用for循环帮他们从1数到15,并使用continue语句跳过13。
输入描述:
无
输出描述:
输出数字1-15,跳过13,数字之间用空格间隔。
答案代码示例:
for i in range(1,16):
if i==13:
continue
else:
print(i,end=' ')
NP61 牛牛的矩阵相加
题目描述:
牛牛正在做矩阵运算,他知道n个矩阵相加,就是将矩阵中每个位置的元素都乘上n。现有一个矩阵[123456789]⎣⎡147258369⎦⎤,请使用list记录该矩阵,对于牛牛输入的数字n,输出n个该矩阵相加的结果。
输入描述:
输入整数n,0<n<10
输出描述:
输出n个矩阵相加的结果,直接以二维列表的形式输出。
答案代码示例:
n=int(input())
list=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(len(list)):
for j in range(len(list[i])):
list[i][j]=list[i][j]*n
print(list)
8.元组
NP62 运动会双人项目
题目描述:
牛客运动会上有一项双人项目,因为报名成功以后双人成员不允许被修改,因此请使用元组(tuple)进行记录。先输入两个人的名字,请输出他们报名成功以后的元组。
输入描述:
第一行以字符串的形式输入第一个人的名字。
第二行以字符串的形式输入第二个人的名字。
输出描述:
直接输出两个名字组成的元组。
答案代码示例:
print((input(),input()))
NP63 修改报名名单
题目描述:
牛牛和牛妹报名了牛客运动会的双人项目,但是由于比赛前一天牛妹身体不适,不能参加第二天的运动,于是想让牛可乐代替自己。
请创建一个依次包含字符串'Niuniu'和'Niumei'的元组entry_form,并直接输出整个元组。
然后尝试使用try- except代码块执行语句:entry-form[1] = 'Niukele',若是引发TypeError错误,请输出'The entry form cannot be modified!'。
输入描述:
无
输出描述:
第一行输出创建的元组整体。
第二行若是修改失败,则输出错误信息。
答案代码示例:
entry_form=('Niuniu','Niumei')
print(entry_form)
try:
entry_form[1]='Niukele'
except TypeError:
print('The entry form cannot be modified!')
NP64 输出前三同学的成绩
题目描述:
学校录入考试排名信息以后,为了防止修改,都会记录为Python元组。请你根据输入的字符串,使用tuple函数将它们作为考生姓名记录到元组中,并使用切片法输出前三名同学的名字。
输入描述:
一行输入多个字符串表示考生的名字,以空格间隔。
输入名字数可能少于3。
输出描述:
截取输出该元组前三位的部分。
答案代码示例:
name=tuple(input().split())
print(name[0:3])
NP65 名单中出现过的人
题目描述:
牛客网有一份秘密名单,['Tom', 'Tony', 'Allen', 'Cydin', 'Lucy', 'Anna'],请将它们创建为不可被修改的Python元组后,输出整个元组。
对于牛牛输入的名字name,请使用成员运算检验它是否出现在这份秘密名单中,若是在名单中则输出'Congratulations!',否则输出'What a pity!'.
输入描述:
以字符串的形式输入一个名字,只包含大小写字母。
输出描述:
第一行输出完整元组,第二行根据判断输出相应语句。
答案代码示例:
name=('Tom','Tony','Allen','Cydin','Lucy','Anna')
print(name)
n=input()
if n in name:
print("Congratulations!")
else:
print("What a pity!")
NP66 增加元组的长度
题目描述:
牛牛有一个元组,其中记录数字1-5,请创建该元组,并使用len函数获取该元组的长度。
牛牛觉得这个元组太短了,想要在该元组后再连接一个6-10的元祖,请输出连接后的元组及长度。输入描述:
无
输出描述:
第一行输出整体的原始元组。(带括号输出)
第二行输出原始元组的长度。
第三行输出连接后的整体元组。(带括号输出)
第四行输出连接后的元组长度。
答案代码示例:
a=(1,2,3,4,5)
print(a)
print(len(a))
b=(6,7,8,9,10)
a=a+b
print(a)
print(len(a))
9.字典
NP67 遍历字典
题目描述:
创建一个依次包含键-值对'<': 'less than'和'==': 'equal'的字典operators_dict,
先使用print()语句一行打印字符串'Here is the original dict:',
再使用for循环遍历 已使用sorted()函数按升序进行临时排序的包含字典operators_dict的所有键的列表,使用print()语句一行输出类似字符串'Operator < means less than.'的语句;
对字典operators_dict增加键-值对'>': 'greater than'后,
输出一个换行,再使用print()语句一行打印字符串'The dict was changed to:',
再次使用for循环遍历 已使用sorted()函数按升序进行临时排序的包含字典operators_dict的所有键的列表,使用print()语句一行输出类似字符串'Operator < means less than.'的语句,确认字典operators_dict确实新增了一对键-值对。
输入描述:
无
输出描述:
按题目描述进行输出即可(注意前后两个输出部分需以一个空行进行分隔)。
答案代码示例:
operator_dict={'<':'less than','==':'equal'}
print('Here is the original dict:')
for i in sorted(operator_dict):
print(f'Operator {i} means {operator_dict[i]}.')
operator_dict['>']='greater than'
print("")
print("The dict was changed to:")
for i in sorted(operator_dict):
print(f'Operator {i} means {operator_dict[i]}.')
NP68 毕业生就业调查
题目描述:
又到了毕业季,牛牛作为牛客大学的学生会主席,决定对本校的应届毕业生进行就业调查。
他创建了一个依次包含字符串'Niumei'、'Niu Ke Le'、'GURR'和'LOLO'的列表survey_list,作为调查名单;
又创建了一个依次包含键-值对'Niumei': 'Nowcoder'和'GURR': 'HUAWEI'的字典result_dict,作为已记录的调查结果。
请遍历列表survey_list,如果遍历到的名字已出现在 包含字典result_dict的全部键的列表 里,
则使用print()语句一行输出类似字符串'Hi, Niumei! Thank you for participating in our graduation survey!'的语句以表达感谢,
否则使用print()语句一行输出类似字符串'Hi, Niu Ke Le! Could you take part in our graduation survey?'的语句以发出调查邀请。
输入描述:
无
输出描述:
按题目描述进行输出即可。
Hi, Niumei! Thank you for participating in our graduation survey!
Hi, Niu Ke Le! Could you take part in our graduation survey?
Hi, GURR! Thank you for participating in our graduation survey!
Hi, LOLO! Could you take part in our graduation survey?
答案代码示例:
survey_list=['Niumei','Niu Ke Le','GURR','LOLO']
result_dict={'Niumei':'Nowcoder','GURR':'HUAWEI'}
for i in survey_list:
if i in result_dict.keys():
print(f'Hi, {i}! Thank you for participating in our graduation survey!')
else:
print(f"Hi, {i}! Could you take part in our graduation survey?")
NP69 姓名与学号
题目描述:
创建一个依次包含键-值对{'name': 'Niuniu'和'Student ID': 1}的字典my_dict_1,
创建一个依次包含键-值对{'name': 'Niumei'和'Student ID': 2}的字典my_dict_2,
创建一个依次包含键-值对{'name': 'Niu Ke Le'和'Student ID': 3}的字典my_dict_3,
创建一个空列表dict_list,使用append()方法依次将字典my_dict_1、my_dict_2和my_dict_3添加到dict_list里,
使用for循环遍历dict_list,对于遍历到的字典,使用print()语句一行输出类似字符串"Niuniu's student id is 1."的语句以打印对应字典中的内容。
输入描述:
无
输出描述:
按题目描述进行输出即可。
Niuniu's student id is 1.
Niumei's student id is 2.
Niu Ke Le's student id is 3.
答案代码示例:
my_dict_1={'name':'Niuniu','Student ID':1}
my_dict_2={'name':'Niumei','Student ID':2}
my_dict_3={'name':'Niu Ke Le','Student ID':3}
dict_list=[]
dict_list.append(my_dict_1)
dict_list.append(my_dict_2)
dict_list.append(my_dict_3)
for i in dict_list:
print(f"{i['name']}'s student id is {i['Student ID']}.")
NP70 首部
题目描述:
创建一个依次包含键-值对'Beijing': {Capital: 'China'}、'Moscow': {Capital: 'Russia'}和'Paris': {Capital: 'France'}的字典cities_dict,
请使用for循环遍历"已使用sorted()函数按升序进行临时排序的包含字典cities_dict的所有键的列表",
对于每一个遍历到的城市名,使用print()语句一行输出类似字符串'Beijing is the capital of China!'的语句。
输入描述:
无
输出描述:
按题目描述进行输出即可。
Beijing is the capital of China!
Moscow is the capital of Russia!
Paris is the capital of France!
答案代码示例:
cities_dict={'Beijing':{'Capital':'China'},'Moscow':{'Capital':'Russia'},
'Paris':{'Capital':'France'}}
for i in sorted(cities_dict.keys()):
print(f"{i} is the capital of {cities_dict[i]['Capital']}!")
NP71 喜欢的颜色
题目描述:
驼瑞驰调查了班上部分同学喜欢哪些颜色,并创建了一个依次包含键-值对'Allen': ['red', 'blue', 'yellow']、'Tom': ['green', 'white', 'blue']和'Andy': ['black', 'pink']的字典result_dict,作为已记录的调查结果。
现在驼瑞驰想查看字典result_dict的内容,你能帮帮他吗?
使用for循环遍历"使用sorted()函数按升序进行临时排序的包含字典result_dict的所有键的列表",对于每一个遍历到的名字,先使用print()语句一行输出类似字符串"Allen's favorite colors are:"的语句,然后再使用for循环遍历该名字在字典result_dict中对应的列表,依次输出该列表中的颜色。
输入描述:
无
输出描述:
按题目描述进行输出即可。
Allen's favorite colors are:
red
blue
yellow
Andy's favorite colors are:
black
pink
Tom's favorite colors are:
green
white
blue
答案代码示例:
result_dict={'Allen':['red','blue','yellow'],'Tom':['green','white','blue'],'Andy':['black','pink']}
for name ,colors in sorted(result_dict.items()):
print(f"{name}'s favorite colors are:")
for i in colors:
print(i)
NP72 生成字典
题目描述:
牛牛有两份列表,一份记录了牛客网用户的名字,另一份记录他们使用的语言。假设两份列表一一对应,请使用zip函数将两份列表封装为字典,以名字为key,语言为value,然后直接输出字典。输入描述:
第一行输入多个字符串表示用户名字,以空格间隔。
第二行输入多个字符串表示使用的语言,以空格间隔。
输出描述:
直接输出两个列表组成的字典。
答案代码示例:
name=input().split()
value=input().split()
dict1=zip(name,value)
print(dict(dict1))
NP73 查字典
题目描述:
正在学习英语的牛妹笔记本上准备了这样一个字典:{'a': ['apple', 'abandon', 'ant'], 'b': ['banana', 'bee', 'become'], 'c': ['cat', 'come'], 'd': 'down'}。
请你创建这样一个字典,对于牛妹输入的字母,查询有哪些单词?
输入描述:
输入一个字母,必定在上述字典中。
输出描述:
同一行中依次输出每个单词,单词之间以空格间隔。
答案代码示例:
dict1={'a':['apple','abandon','ant'],'b':['banana','bee','become'],'c':['cat','come'],'d':'down'}
print(' '.join(dict1[input()]))
NP74 字典新增
题目描述:
正在学习英语的牛妹创建了一个字典:{'a': ['apple', 'abandon', 'ant'], 'b': ['banana', 'bee', 'become'], 'c': ['cat', 'come'], 'd': 'down'}。现牛妹新学了一个字母letter,以及一个新单词word,请把它们增加到字典中,再输出更新后的字典。
输入描述:
第一行输入一个新字母letter,
第二行输入一个新单词word。
输出描述:
输出更新后的整个字典。
答案代码示例:
dict1={'a':['apple','abandon','ant'],'b':['banana','bee','become'],'c':['cat','come'],'d':'down'}
letter=input()
word=input()
dict1[letter]=word
print(dict1)
NP75 使用字典计数
题目描述:
Python的字典可以用来计数,让要被计数的元素作为key值,它出现的频次作为value值,只要在遇到key值后更新它对应的value即可。现输入一个单词,使用字典统计该单词中各个字母出现的频次。
输入描述:
输入一个字符串表示单词,只有大小写字母。
输出描述:
直接输出统计频次的字典。
答案代码示例:
list1=list(input())
list2=[list1.count(i)for i in list1]
print(dict(zip(list1,list2)))
10.内置函数
NP76 列表的最值运算
题目描述:
牛牛给了牛妹一个一串无规则的数字,牛妹将其转换成列表后,使用max和min函数快速的找到了这些数字的最值,你能用Python代码实现一下吗?
输入描述:
输入一行多个整数,数字之间以空格间隔。
输出描述:
输出这些数字的zui zhi
答案代码示例:
list1=[]
number=input().split()
for i in number:
list1.append(int(i))
print(max(list1))
print(min(list1))
NP77 朋友的年龄和
题目描述:
牛牛想知道自己小组内的同事们的年龄和都有多少,他输入一串年龄序列,请将其转换成列表,并使用sum函数直接获取列表的和。
输入描述:
一行输入多个正整数,以空格间隔。
输出描述:
输出求和。
答案代码示例:
list_age=[]
n=input().split()
for i in n:
list_age.append(int(i))
print(sum(list_age))
NP78 正数输出器
题目描述:
牛牛想要这样一个程序,只要是输入一个整数,不管正负,它一定转换为正数,即获取该数字的绝对值,你能用abs函数实现吗?
输入描述:
输入一个非零整数。
输出描述:
输出该数字的绝对值。
答案代码示例:
print(abs(int(input())))
NP79 字母转数字
题目描述:
牛牛刚学习了ASCII码,他知道计算机中的字母很多用的都是这个编码方式,现在输入一个字母,你能使用ord函数将其转换为ASCII码对应的数字吗?
输入描述:
输入一个字符,仅包含大小写字母。
输出描述:
输出该字母在ASCII中对应的数字。
答案代码示例:
print(ord(input()))
NP80 数字的十六进制
题目描述:
牛妹刚学习进制转换,对这方面掌控还不太熟练,她想请你帮她写一个十进制到十六进制的进制转换器,你能使用hex函数帮助她完成这个任务吗?
输入描述:
输入一个正整数。
输出描述:
输出该正整数的十六进制。
答案代码示例:
print(hex(int(input())))
NP81 数字的二进制表示
题目描述:
计算机内部都由二进制组成,但是早就习惯使用十进制的牛牛根本不知道这个数字的二进制是什么,你能使用bin函数帮助他将十进制数字转换成二进制吗?
输入描述:
输入一个十进制正整数。
输出描述:
输出该数字的二进制形式。
答案代码示例:
print(bin(int(input())))
NP82 数学幂运算
题目描述:
在Python中,除了使用两个乘号相连外,还能使用pow函数表示幂运算。
现牛牛输入正整数x与y,请你使用两种方法分别计算xy与yx。
输入描述:
一行输入两个正整数,以空格间隔。
输出描述:
分别两行输出计算xy与yx
答案代码示例:
x,y=map(int,input().split())
print(pow(x,y))
print(pow(y,x))
NP83 错误出现的次数
题目描述:
在牛客网内部使用1标记正确回答的题,使用0表示回答错误的题。牛牛拿到自己的作答记录是一串01序列,他想知道自己一共答错了多少次,你能将这串序列转换为列表,使用count函数帮助牛牛统计一下吗?
输入描述:
输入一行数组序列,数字只包含0和1,以空格间隔。
输出描述:
输出0出现的次数。
答案代码示例:
x=input().split()
print(x.count("0"))
NP84 列表中第一次出现的位置
题目描述:
牛客网有一个打卡系统,记录了每个人这一个星期上班打卡的记录(以名字的形式)。牛牛想知道自己在这一个星期是第几个打卡的人,你用将这份名字记录转换为列表,然后使用index函数找到'NiuNiu'的位置吗?
输入描述:
输入一行字符串表示打卡人的姓名,以空格间隔,字符串中必定有'NiuNiu'。
输出描述:
输出'NiuNiu'第一次打卡是第几个,从0开始计数。
答案代码示例:
names=input().split()
print(names.index('NiuNiu'))
NP85 字符的类型比较
题目描述:
Python有内置函数isalpha、isdigit、isspace可以分别判断字符串是否只包含字母、数字、空格,现在输入一个字符串,请分别输出这三个函数的判断结果。
输入描述:
输入一个字符串。
输出描述:
分三行依次输出上述三个函数的判断结果。
答案代码示例:
n=input()
print(n.isalpha())
print(n.isdigit())
print(n.isspace())
NP86 字符子串的查找
题目描述:
牛客网公布中奖信息了,中奖信息是一个很长的字符串,牛牛想知道自己的名字('NiuNiu')有没有出现在其中,你能帮助他使用字符串的find函数查找一下吗?
输入描述:
输入一个长字符串long_str表示中奖信息。
输出描述:
输出'NiuNiu'在long_str中第一次出现的位置,没有则输出-1.
答案代码示例:
long_str=input()
print(long_str.find('NiuNiu'))
NP87 子串的数量
题目描述:
牛客网喜欢'Niu'这个词,各个地方的称号、标语都会出现。现在给你一定长字符串patten,你能使用count函数找到'Niu'在其中出现的次数吗?
输入描述:
输入一行字符串patten。
输出描述:
输出'Niu'在patten中出现的次数,为非负数。
答案代码示例:
patten=input()
print(patten.count('Niu'))
NP88 句子拆分
题目描述:
英文句子都是由单词之间通过空格间隔而组成,牛牛想知道一句英语句子里面包含有哪些单词,你能使用split函数将它们全部按照空格分割,记录进列表中吗,请输出列表。
输入描述:
输入一行字符串,仅包含空格和大小写字母。
输出描述:
输出分割后的单词列表,不必去重。
答案代码示例:
print(input().split())
NP89 单词造句
题目描述:
牛牛在和牛妹做一个游戏,牛牛给定了牛妹一些单词字符串,他想让牛妹把这些单词拼接成以空格间隔开的句子,很可惜牛妹Python没有学好,你能使用join函数帮帮她吗?
输入描述:
多行输入多个字符串,每行一个单词,最后一个输入为0时结束。
输出描述:
输出多个单词组成的句子。
答案代码示例:
a=[]
while True:
b=input()
if b=='0':
break
else:
a.append(b)
print(' '.join(a))
NP90 修正错误的字母
题目描述:
牛客网在录入用户名字信息发生了错误,所有的字符子串'ab'都被录成'a*',运营同学急坏了。你能使用Python字符串的replace函数,将名字信息中的'a*'全部修改回'ab'吗?
输入描述:
输入一个字符串表示录入的用户名字,其中必定包括子串'a*'。
输出描述:
输出全部替换后的字符串
答案代码示例:
print(input().replace('a*','ab'))
NP91 小数位修正
题目描述:
牛客网的财务同学很苦恼,各个部门提交的资料中关于金额的小数保留简直是乱七八糟,你能使用round函数,帮助财务同学将输入数字的小数位修正为四舍五入保留至最多两位小数吗?(请不要使用字符串格式化输出保留小数位)
输入描述:
输入一个正小数。
输出描述:
输出该小数的四舍五入保留至最多两位小数后的结果。
答案代码示例:
n=float(input())
print(round(n,2))
NP92 公式计算器
题目描述:
牛牛听说Python中有一个很神奇的函数eval(),只要输入的字符串是一个公式,它能够直接计算这个公式的值。
现牛牛以字符串地形式输入一个公式,请你使用eval()计算结果。
输入描述:
以字符串的形式输入公式,包括加减乘幂四种运算,数字都是整数,有正有负有零。
输出描述:
直接输出计算结果。
答案代码示例:
n=input()
print(eval(n))
NP93 创建集合
题目描述:
某公司内部报名年会活动,因为是匿名报名,有的同事可能偷偷“帮助”别人报名了,导致一个名字出现多次。后台营运同学希望你能用set函数将这些名字记录为一个集合,以到达去重的目的,请输出这些名字创建的集合,输出的时候使用sorted函数对集合排序。
输入描述:
一行输入多个字符串表示报名的名字,以空格间隔。
输出描述:
输出这些报名名字组成的集合。
答案代码示例:
n=input().split()
print(sorted(set(n)))
11.面向对象
NP94 函数求差
题目描述:
请定义一个函数cal(),该函数返回两个参数相减的差。
输入第一个数字记录在变量x中,输入第二个数字记录在变量y中,将其转换成数字后调用函数计算cal(x, y),再交换位置计算cal(y, x)。
输入描述:
输入两个整数。
输出描述:
根据题目描述输出两个差,每个数字单独一行。
答案代码示例:
def cal(x,y):
return x-y
x=int(input())
y=int(input())
print(cal(x,y))
print(cal(y,x))
NP95 兔子的数量
题目描述:
兔子的数量以这样的方式增长:每个月的兔子数量等于它前一个月的兔子数量加它前两个月的兔子数量,即f(n)=f(n-1)+f(n-2)。假设第1个月的兔子有2只,第2个月的兔子有3只,你能使用递归的方法求得第n个月的兔子有多少只吗?
输入描述:
输入正整数n,n<10。
输出描述:
输出第n个月的兔子数量。
答案代码示例:
def fun(n):
if n==1:
return 2
elif n==2:
return 3
else:
return fun(n-1)+fun(n-2)
n=int(input())
print(fun(n))
NP96 球的表面积
题目描述:
球的表面积公式为V=4πr2V=4πr2,请写一个函数,输入球的半径,返回球的表面积。球的半径如下:[1, 2, 4, 9, 10, 13],请输出这些半径下的表面积,π取math库的math.pi。
输入描述:
无
输出描述:
每行输出一个表面积,保留两位小数。
答案代码示例:
from math import pi
n=[1, 2, 4, 9, 10, 13]
for i in n:
r=float(i)
print(round(4*pi*r**2,2))
NP97 班级管理
题目描述:
牛牛的Python老师为了更好地管理班级,利用一个类Student来管理学生,这个类包含了学生姓名(str)、学号(str)、分数(int)、每次作业等级(list[str])等信息。请你帮助牛牛的老师实现这样一个类,并定义构造方法实现初始化,定义打印函数实现打印学生的姓名、学号、分数、提交作业的次数、每次作业的等级。
输入描述:
第一行输入字符串表示学生姓名。
第二行输入字符串表示学生学号。
第三行输入整数表示学生得分。
第四行输入多个大写字母表示每次作业等级,用空格间隔。
输出描述:
用一句话输出学生的姓名、学号、分数、提交作业的次数、每次作业的等级,可以参考输出样例。
答案代码示例:
class Student(object):
def __init__(self,name,number,score,grade) :
self.name=name
self.number=number
self.score=score
self.grade=grade
def p(self):
return "{}'s student number is {}, and his grade is {}. He submitted {} assignments, each with a grade of {}".format(self.name,self.number,self.score,len(self.grade),' '.join(self.grade))
name=input()
number=input()
score=int(input())
grade=list(input().split(' '))
student=Student(name,number,score,grade)
print(student.p())
NP98 修改属性1
题目描述:
请为牛客网的员工创建一个Employee类,包括属性有姓名(name)、(salary),并设置初始化。同时该类包括一个方法printclass,用于输出类似'NiuNiu‘s salary is 4000, and his age is 22'的语句。
请根据输入的name与salary为该类创建实例e,并调用printclass方法输出信息,如果没有年龄信息则输出错误信息"Error! No age"。
根据输入的年龄为实例e直接添加属性age等于输入值,再次调用printclass方法输出信息。(printclass方法中建议使用try...except...结构)
输入描述:
三行分别输入姓名name、工资salary、年龄age,其中第一个为字符串,后两个为整型数字。
输出描述:
根据描述输出错误信息或是打印信息。
答案代码示例:
class Employee(object):
def __init__(self,name,salary):
self.name=name
self.salary=salary
def printclass(self):
try:
print("{}'s salary is {}, and his age is {}".format(self.name,self.salary,self.age))
except AttributeError:
print("Error! No age")
name=input()
salary=int(input())
age=int(input())
e=Employee(name,salary)
e.printclass()
e.age=age
e.printclass()
NP99 修改属性2
题目描述:
请为牛客网的员工创建一个Employee类,包括属性有姓名(name)、(salary),并设置初始化。同时该类包括一个方法printclass,用于输出类似'NiuNiu‘s salary is 4000, and his age is 22'的语句。
请根据输入的信息为Employee类创建一个实例e,调用hasattr方法检验实例有没有属性age,如果存在属性age直接调用printclass输出,否则使用setattr函数为其添加属性age,并设置值为输入后,再调用printclass输出。
输入描述:
三行分别依次输入姓名name、工资salary、年龄age,其中第一行为字符串,后两行为整型数字。输出描述:
第一行输出e有没有属性age,True或者False;
第二行输出printclass打印信息。
答案代码示例:
class Employee(object):
def __init__(self,name,salary):
self.name=name
self.salary=salary
def printclass(self):
try:
print("{}'s salary is {}, and his age is {}".format(self.name,self.salary,self.age))
except:
print("Error! No age")
name=input()
salary=input()
age=input()
e=Employee(name,salary)
if print(hasattr(e,'age')):
e.printclass()
else:
setattr(e,"age",age)
e.printclass()
NP100 重载运算
题目描述:
请创建一个Coordinate类表示坐标系,属性有x和y表示横纵坐标,并为其创建初始化方法__init__。
请重载方法__str__为输出坐标'(x, y)'。
请重载方法__add__,更改Coordinate类的相加运算为横坐标与横坐标相加,纵坐标与纵坐标相加,返回结果也是Coordinate类。
现在输入两组横纵坐标x和y,请将其初始化为两个Coordinate类的实例c1和c2,并将坐标相加后输出结果。
输入描述:
第一行输入两个整数x1与y1,以空格间隔。
第二行输入两个整数x2与y2,以空格间隔。
输出描述:
输出相加后的坐标。
答案代码示例:
class Coordinate(object):
def __init__(self,x,y):
self.x=x
self.y=y
def __str__(self):
return "({}, {})".format(self.x,self.y)
def __add__(self,other):
return Coordinate(self.x+other.x,self.y+other.y)
x1,y1=list(map(int,input().split()))
x2,y2=list(map(int,input().split()))
c1=Coordinate(x1,y1)
c2=Coordinate(x2,y2)
print(c1+c2)
12.正则表达式
NP101 正则查找网址
题目描述:
牛牛最近正在研究网址,他发现好像很多网址的开头都是'https://www',他想知道任意一个网址都是这样开头吗。于是牛牛向你输入一个网址(字符串形式),你能使用正则函数re.match在起始位置帮他匹配一下有多少位是相同的吗?(区分大小写)
输入描述:
输入一行字符串表示网址。
输出描述:
输出网址从开头匹配到第一位不匹配的范围。
答案代码示例:
import re
NetAddr=str(input())
print(re.match('https://www',NetAddr,re.I).span())
NP102 提取数字电话
题目描述:
牛牛翻看以前记录朋友信息的电话薄,电话号码几位数字之间使用-间隔,后面还接了一下不太清楚什么意思的英文字母,你能使用正则匹配re.sub将除了数字以外的其他字符去掉,提取一个全数字电话号码吗?
输入描述:
输入一行字符串,字符包括数字、大小写字母和-
输出描述:
输出该字符串提取后的全数字信息。
答案代码示例:
import re
s=input()
print (re.sub(r'\D', "", s))
NP103 截断电话号码
题目描述:
牛牛记录电话号码时,习惯间隔几位就加一个-间隔,方便记忆,同时他还会在电话后面接多条#引导的注释信息。拨打电话时,-可以被手机正常识别,#引导的注释信息就必须要去掉了,你能使用正则匹配re.match将前面的数字及-信息提取出来吗,去掉后面的注释信息。
输入描述:
输入一行字符串,包括数字、大小写字母、#、-及空格。
输出描述:
输出提取的仅包含数字和-的电话号码。
答案代码示例:
import re
phone_text = input()
pattern = "[0-9|-]*"
result = re.match(pattern, phone_text)
print(result.group())