3.7号学习

题目

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

解题

x输入的时字符串,无法与整形进行比较,所以要变成整形

代码

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

题目

牛客网在玩数数字游戏,员工一致认为13是一个“不详的数字”,请你使用for循环帮他们从1数到15,并使用continue语句跳过13。

解题

end,是末尾改变形式
sep在打印连续内容的时候指定分隔符

代码

for i in range(1,16):
i = int(i)
if i == 13:
continue
else:
print(i,end = ’ ')

题目

牛牛正在做矩阵运算,他知道n个矩阵相加,就是将矩阵中每个位置的元素都乘上n。现有一个矩阵
[
1
2
3
4
5
6
7
8
9
]


1
4
7

2
5
8

3
6
9




,请使用list记录该矩阵,对于牛牛输入的数字n,输出n个该矩阵相加的结果。

解题

a = [[1,2,3],[4,5,6],[7,8,9]] 矩阵的表达形式

代码

题目

牛客运动会上有一项双人项目,因为报名成功以后双人成员不允许被修改,因此请使用元组(tuple)进行记录。先输入两个人的名字,请输出他们报名成功以后的元组。

解题

元组的定义形式 名字=(输入1,输入2)

代码

name1 = input()
name2 = input()
tuple = (name1 ,name2)
print(tuple)

题目

牛牛和牛妹报名了牛客运动会的双人项目,但是由于比赛前一天牛妹身体不适,不能参加第二天的运动,于是想让牛可乐代替自己。
请创建一个依次包含字符串’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!’)

题目

学校录入考试排名信息以后,为了防止修改,都会记录为Python元组。请你根据输入的字符串,使用tuple函数将它们作为考生姓名记录到元组中,并使用切片法输出前三名同学的名字。

解题

切片元组需要再看一下

代码

name = input().split(’ ')
#tuple = (name)
c = tuple(name)
print(c[:3])

题目

牛客网有一份秘密名单,[‘Tom’, ‘Tony’, ‘Allen’, ‘Cydin’, ‘Lucy’, ‘Anna’],请将它们创建为不可被修改的Python元组后,输出整个元组。
对于牛牛输入的名字name,请使用成员运算检验它是否出现在这份秘密名单中,若是在名单中则输出’Congratulations!‘,否则输出’What a pity!’.

解题

name1 = tuple(name) 将列表变成元组

代码

name = [‘Tom’, ‘Tony’, ‘Allen’, ‘Cydin’, ‘Lucy’, ‘Anna’]
name1 = tuple(name)
name3 = input()
print(name1)
if name3 in name1:
print(‘Congratulations!’)
else:
print(‘What a pity!’)

题目

牛牛有一个元组,其中记录数字1-5,请创建该元组,并使用len函数获取该元组的长度。
牛牛觉得这个元组太短了,想要在该元组后再连接一个6-10的元祖,请输出连接后的元组及长度。

解题

连接元组,连接两个元组,首先定义第一个元组,在定义第二个元组,最后两个元组的名字相加,即将两个元组链接。
a+b

代码

a = list(range(1,6))
b = tuple(a)
print(b)
print(len(b))
c = list(range(6,11))
d = tuple©
f = b+d
print(f)
print(len(f))

题目

创建一个依次包含键-值对’<‘: ‘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确实新增了一对键-值对。

解题

字典增加,遍历字典

代码

operators_dict = {‘<’:‘less than’,‘==’:‘equal’}
print(‘Here is the original dict:’)
for key,value in sorted(operators_dict.items()):
print(f"Operator {key} means {value}.")
operators_dict[‘>’] = ‘greater than’

print()
print(‘The dict was changed to:’)
for key,value in sorted(operators_dict.items()):
print(f"Operator {key} means {value}.")

题目

又到了毕业季,牛牛作为牛客大学的学生会主席,决定对本校的应届毕业生进行就业调查。
他创建了一个依次包含字符串’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 a in survey_list:
if a in result_dict.keys():
print(f"Hi, {a}! Thank you for participating in our graduation survey!“)
else:
print(f"Hi, {a}! Could you take part in our graduation survey?”)

题目

创建一个依次包含键-值对{‘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."的语句以打印对应字典中的内容。

解题

for dict in dict_list:
print(f"{dict[‘name’]}'s student id is {dict[‘Student ID’]}.")
这种是列表,嵌套获取里边的键对值得方法。

代码

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 dict in dict_list:
print(f"{dict[‘name’]}'s student id is {dict[‘Student ID’]}.")

题目

创建一个依次包含键-值对’Beijing’: {Capital: ‘China’}、‘Moscow’: {Capital: ‘Russia’}和’Paris’: {Capital: ‘France’}的字典cities_dict,
请使用for循环遍历"已使用sorted()函数按升序进行临时排序的包含字典cities_dict的所有键的列表",
对于每一个遍历到的城市名,使用print()语句一行输出类似字符串’Beijing is the capital of China!'的语句。

解题

首先是字典的嵌套,对于字典嵌套获取键对值,首先和普通字典一样,对字典进行遍历,即for key,value in x.items():
其中,打印key是最外层的键,打印value【’内部键‘】可以获得内部值

代码

cities_dict = {‘Beijing’: {‘Capital’: ‘China’},‘Moscow’: {‘Capital’: ‘Russia’},‘Paris’: {‘Capital’: ‘France’}}
for city ,i in sorted(cities_dict.items()):
print(f"{city} is the capital of {i[‘Capital’]}!")

题目

驼瑞驰调查了班上部分同学喜欢哪些颜色,并创建了一个依次包含键-值对’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中对应的列表,依次输出该列表中的颜色。

解题

有点遗忘,如何打印字典

代码

result_dict = {‘Allen’: [‘red’, ‘blue’, ‘yellow’],‘Tom’: [‘green’, ‘white’, ‘blue’],‘Andy’: [‘black’, ‘pink’]}
for key,value in sorted(result_dict.items()):
print(f"{key}'s favorite colors are:")
for i in value:
print(i)

题目

牛牛有两份列表,一份记录了牛客网用户的名字,另一份记录他们使用的语言。假设两份列表一一对应,请使用zip函数将两份列表封装为字典,以名字为key,语言为value,然后直接输出字典。

解题

注意,zip()将可迭代对象封装成元素对应的元组形式,使用dict转换成字典格式
和上边元组得形式一样

代码

name1 = input().split()
name2 = input().split()
dict1 = dict(zip(name1,name2))
print(dict1)

题目

正在学习英语的牛妹笔记本上准备了这样一个字典:{‘a’: [‘apple’, ‘abandon’, ‘ant’], ‘b’: [‘banana’, ‘bee’, ‘become’], ‘c’: [‘cat’, ‘come’], ‘d’: ‘down’}。
请你创建这样一个字典,对于牛妹输入的字母,查询有哪些单词?

解题

if

代码

word = {‘a’: [‘apple’, ‘abandon’, ‘ant’], ‘b’: [‘banana’, ‘bee’, ‘become’], ‘c’: [‘cat’, ‘come’], ‘d’: ‘down’}
a = input()
for key,value in word.items():
for i in value:
if a == key:
print(i,end = ’ ')

题目

正在学习英语的牛妹创建了一个字典:{‘a’: [‘apple’, ‘abandon’, ‘ant’], ‘b’: [‘banana’, ‘bee’, ‘become’], ‘c’: [‘cat’, ‘come’], ‘d’: ‘down’}。现牛妹新学了一个字母letter,以及一个新单词word,请把它们增加到字典中,再输出更新后的字典。

解题

words[letter] =word
往字典中加入值,如果加入得是从电脑中新输入,不加引号,如果添加已知值,用引号

代码

words = {‘a’: [‘apple’, ‘abandon’, ‘ant’], ‘b’: [‘banana’, ‘bee’, ‘become’], ‘c’: [‘cat’, ‘come’], ‘d’: ‘down’}
letter = input()
word = input()
words[letter] =word
print(words)

题目

Python的字典可以用来计数,让要被计数的元素作为key值,它出现的频次作为value值,只要在遇到key值后更新它对应的value即可。现输入一个单词,使用字典统计该单词中各个字母出现的频次。

解题

设置对应所需变量
1
2
word = list(input())
dictionary = dict()
利用for循环遍历列表word并进行技术,添加至字典中
复制代码
1
2
3
4
for i in word:
value = word.count(i)
dictionary[i] = value
print(dictionary)

将列表中的东西放入字典中,首先建立一个空字典,用来陆续存放列表中的值,再然后遍历列表,value = 列表中的啥啥,来作为值,
a=input()
b=[]
c=[]
for i in a:
b.append(i)
c.append(a.count(i))
print(dict(zip(b,c)))

第二种方法,字典的封装。

代码

a = list(input())
dict1 = dict()
for i in a :
value = a.count(i)
dict1[i] = value
print(dict1)

题目

牛牛给了牛妹一个一串无规则的数字,牛妹将其转换成列表后,使用max和min函数快速的找到了这些数字的最值,你能用Python代码实现一下吗?

解题

默认的输入是字符串类型,需要转化成整形在进行内置函数的使用
a=input().split() a=list(a) b=[int(i) for i in a] c=max(b) d=min(b) print© print(d
num_list = input().split()
lst = []
for item in num_list:
lst.append(int(item))
print(max(lst))
print(min(lst))

代码

a = input().split()
a = list(a)
b = [int(i) for i in a ]
print(max(b))
print(min(b))

题目

牛牛想知道自己小组内的同事们的年龄和都有多少,他输入一串年龄序列,请将其转换成列表,并使用sum函数直接获取列表的和。

解题

最重要的是将输入的字符串形式转换成整形
利用lis = []
for i in age:
lis.append(int(i))

代码

age = input().split()
age = list(age)
lis = []
for i in age:
lis.append(int(i))
print(sum(lis))

题目

牛牛想要这样一个程序,只要是输入一个整数,不管正负,它一定转换为正数,即获取该数字的绝对值,你能用abs函数实现吗?

解题

最重要的是将输入的字符串形式转换成整形

代码

a = int(input())
print(abs(a))

题目

牛牛刚学习了ASCII码,他知道计算机中的字母很多用的都是这个编码方式,现在输入一个字母,你能使用ord函数将其转换为ASCII码对应的数字吗?

解题

代码

a = input()
print(ord(a))

题目

牛妹刚学习进制转换,对这方面掌控还不太熟练,她想请你帮她写一个十进制到十六进制的进制转换器,你能使用hex函数帮助她完成这个任务吗?

解题

最重要的是将输入的字符串形式转换成整形

代码

a = input()
a = int(a)
print(hex(a))

题目

计算机内部都由二进制组成,但是早就习惯使用十进制的牛牛根本不知道这个数字的二进制是什么,你能使用bin函数帮助他将十进制数字转换成二进制吗?

解题

代码

a = input()
a = int(a)
print(bin(a))

题目

在Python中,除了使用两个乘号相连外,还能使用pow函数表示幂运算。
现牛牛输入正整数x与y,请你使用两种方法分别计算xy与yx。

解题

一行输入多个值,并且属于不同变量,要用x,y= input().split(’ ')

代码

x,y= input().split(’ ')
x = int(x)
y = int(y)
print(pow(x,y))
print(pow(y,x))

题目

在牛客网内部使用1标记正确回答的题,使用0表示回答错误的题。牛牛拿到自己的作答记录是一串01序列,他想知道自己一共答错了多少次,你能将这串序列转换为列表,使用count函数帮助牛牛统计一下吗?

解题

count的用法,列表。count()

代码

x = list(input().split(’ '))
y = []
for i in x :
y.append(int(i))
print(y.count(0))

题目

牛客网有一个打卡系统,记录了每个人这一个星期上班打卡的记录(以名字的形式)。牛牛想知道自己在这一个星期是第几个打卡的人,你用将这份名字记录转换为列表,然后使用index函数找到’NiuNiu’的位置吗?

解题

代码

name = list(input().split(’ '))
print(name.index(‘NiuNiu’))

题目

Python有内置函数isalpha、isdigit、isspace可以分别判断字符串是否只包含字母、数字、空格,现在输入一个字符串,请分别输出这三个函数的判断结果。

解题

代码

a = input()
print(a.isalpha())
print(a.isdigit())
print(a.isspace())

题目

牛客网公布中奖信息了,中奖信息是一个很长的字符串,牛牛想知道自己的名字(‘NiuNiu’)有没有出现在其中,你能帮助他使用字符串的find函数查找一下吗?

解题

代码

long_str = input()
print(long_str.find(‘NiuNiu’))

题目

牛客网喜欢’Niu’这个词,各个地方的称号、标语都会出现。现在给你一定长字符串patten,你能使用count函数找到’Niu’在其中出现的次数吗?

解题

代码

patten = input()
print(patten.count(‘Niu’))

题目

英文句子都是由单词之间通过空格间隔而组成,牛牛想知道一句英语句子里面包含有哪些单词,你能使用split函数将它们全部按照空格分割,记录进列表中吗,请输出列表。

解题

代码

a = input().split(’ ')
print(a)

题目

牛牛在和牛妹做一个游戏,牛牛给定了牛妹一些单词字符串,他想让牛妹把这些单词拼接成以空格间隔开的句子,很可惜牛妹Python没有学好,你能使用join函数帮帮她吗?

解题

b=[]
while True:
a=input(“”)
if a ==‘0’:
break
else:
b.append(a)
c=’ '.join(b)
print©
函数:string.join()

Python中有join()和os.path.join()两个函数,具体作用如下:
join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
os.path.join(): 将多个路径组合后返回

代码

b=[]
while True:
a=input(“”)
if a ==‘0’:
break
else:
b.append(a)
c=’ '.join(b)
print©

题目

牛客网在录入用户名字信息发生了错误,所有的字符子串’ab’都被录成’a*',运营同学急坏了。你能使用Python字符串的replace函数,将名字信息中的’a*'全部修改回’ab’吗?

解题

replace函数的使用方法

代码

name = input()
print(name.replace(‘a*’,‘ab’))

题目

牛客网的财务同学很苦恼,各个部门提交的资料中关于金额的小数保留简直是乱七八糟,你能使用round函数,帮助财务同学将输入数字的小数位修正为四舍五入保留至最多两位小数吗?(请不要使用字符串格式化输出保留小数位

解题

代码

a = float(input())
print(round(a,2))

题目

牛牛听说Python中有一个很神奇的函数eval(),只要输入的字符串是一个公式,它能够直接计算这个公式的值。
现牛牛以字符串地形式输入一个公式,请你使用eval()计算结果。
输入描述:

解题

eval() 方法内的参数可以是字符串

代码

a = input()
print(eval(a))

题目

某公司内部报名年会活动,因为是匿名报名,有的同事可能偷偷“帮助”别人报名了,导致一个名字出现多次。后台营运同学希望你能用set函数将这些名字记录为一个集合,以到达去重的目的,请输出这些名字创建的集合,输出的时候使用sorted函数对集合排序。

解题

a = set(input().split(" ")) print(sorted(a)) #本题考试set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

代码

a = input().split(’ ')
b = set(a)
print(sorted(b))

题目

牛牛记录电话号码时,习惯间隔几位就加一个-间隔,方便记忆,同时他还会在电话后面接多条#引导的注释信息。拨打电话时,-可以被手机正常识别,#引导的注释信息就必须要去掉了,你能使用正则匹配re.match将前面的数字及-信息提取出来吗,去掉后面的注释信息。

解题

import re
s = input()
r = re.match(‘[0-9-]+’,s)
print(r.group())

代码

import re
s = input()
r = re.match(‘[0-9-]+’,s)
print(r.group())

题目

牛牛翻看以前记录朋友信息的电话薄,电话号码几位数字之间使用-间隔,后面还接了一下不太清楚什么意思的英文字母,你能使用正则匹配re.sub将除了数字以外的其他字符去掉,提取一个全数字电话号码吗?

解题

import re
a = input()
b = re.sub(r"[^(\d)]", ‘’,a)
print(b)
先引入re模块;
输入字符串,re.sub()函数语法:
1
re.sub(pattern, repl, string, count=0, flags=0)
参数:

pattern : 正则中的模式字符串。
repl : 替换的字符串,也可为一个函数。
string : 要被查找替换的原始字符串。
count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。

代码

import re
a = input()
b = re.sub(r"[^(\d)]", ‘’,a)
print(b)

题目

牛牛最近正在研究网址,他发现好像很多网址的开头都是’https://www’,他想知道任意一个网址都是这样开头吗。于是牛牛向你输入一个网址(字符串形式),你能使用正则函数re.match在起始位置帮他匹配一下有多少位是相同的吗?(区分大小写)

解题

import re
a = input()
c = re.match(r’https://www’,a, flags = re.I).span()
print©

代码

import re
a = input()
c = re.match(r’https://www’,a, flags = re.I).span()
print©

题目

请定义一个函数cal(),该函数返回两个参数相减的差。
输入第一个数字记录在变量x中,输入第二个数字记录在变量y中,将其转换成数字后调用函数计算cal(x, y),再交换位置计算cal(y, x)

解题

def cal(a,b):
return a-b
x = int(input())
y = int(input())
print(cal(x,y))
print(cal(y,x))

代码

def cal(a,b):
return a-b
x = int(input())
y = int(input())
print(cal(x,y))
print(cal(y,x))

题目

兔子的数量以这样的方式增长:每个月的兔子数量等于它前一个月的兔子数量加它前两个月的兔子数量,即f(n)=f(n-1)+f(n-2)。假设第1个月的兔子有2只,第2个月的兔子有3只,你能使用递归的方法求得第n个月的兔子有多少只吗?

解题

def f(n):
if n == 1:
return 2
elif n == 2:
return 3
else:
return f(n-1) + f(n-2)

n = int(input())
print(f(n))

代码

def f(n):
if n == 1:
return 2
elif n == 2:
return 3
else:
return f(n-1) + f(n-2)

n = int(input())
print(f(n))

题目

球的表面积公式为

4


2
V=4πr
2
,请写一个函数,输入球的半径,返回球的表面积。球的半径如下:[1, 2, 4, 9, 10, 13],请输出这些半径下的表面积,π取math库的math.pi。

解题

import math as mt

def v(n):
return 4mt.pin**2
r = [1, 2, 4, 9, 10, 13]
for i in r:
print(round(v(i),2))

代码

import math as mt

def v(n):
return 4mt.pin**2
r = [1, 2, 4, 9, 10, 13]
for i in r:
print(round(v(i),2))

题目

牛牛的Python老师为了更好地管理班级,利用一个类Student来管理学生,这个类包含了学生姓名(str)、学号(str)、分数(int)、每次作业等级(list[str])等信息。请你帮助牛牛的老师实现这样一个类,并定义构造方法实现初始化,定义打印函数实现打印学生的姓名、学号、分数、提交作业的次数、每次作业的等级。
输入描述:
第一行输入字符串表示学生姓名。
第二行输入字符串表示学生学号。
第三行输入整数表示学生得分。
第四行输入多个大写字母表示每次作业等级,用空格间隔。
输出描述:
用一句话输出学生的姓名、学号、分数、提交作业的次数、每次作业的等级,可以参考输出样例。
示例1
输入:
NiuNiu
12345
90
A B C
复制
输出:
NiuNiu’s student number is 12345, and his grade is 90. He submitted 3 assignments, each with a grade of A B C
复制

解题

class Student:
def init(self, name, stu_num, score, grade):
self.name = name
self.stu_num = stu_num
self.score = score
self.grade = grade
#__str__方法用于返回对象的描述信息,如果不使用__str__方法,直接print,或者return,返回的是对象的内存地址。
def str(self):
return (“%s’s student number is %s, and his grade is %d. He submitted %s assignments, each with a grade of %s”
% (self.name, self.stu_num, int(self.score), len(self.grade.split()), self.grade))

name1 = input()
stu_num1 = input()
score1 = input()
grade1 = input()
stu = Student(name1, stu_num1, score1, grade1)
print(stu)

代码

题目

请为牛客网的员工创建一个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…结构)

解题

class Employee:
def init(self, name, salary):
self.name = name
self.salary = salary
def printclass(self):
try:
print(f"{self.name}'salary is {self.salary}, and his age is {self.age}")
except:
print(‘Error! No age’)

e = Employee(input(), input())
e.printclass()
e.age = input()
e.printclass()

代码

题目

请为牛客网的员工创建一个Employee类,包括属性有姓名(name)、(salary),并设置初始化。同时该类包括一个方法printclass,用于输出类似’NiuNiu‘s salary is 4000, and his age is 22’的语句。
请根据输入的信息为Employee类创建一个实例e,调用hasattr方法检验实例有没有属性age,如果存在属性age直接调用printclass输出,否则使用setattr函数为其添加属性age,并设置值为输入后,再调用printclass输出。
输入描述:

解题

class Employee():
def init(self,name,salary):
self.name = name
self.salary = salary
def printclass(self):
print(“{}'salary is {}, and his age is {}”.format(self.name,self.salary,self.age))

name = input()
salary = input()
age = input()
e = Employee(name,salary)
if hasattr(e,‘age’):
e.printclass()
if hasattr(e,‘age’) is False:
print(hasattr(e,‘age’))
e.age = input()
e.printclass()

代码

请创建一个Coordinate类表示坐标系,属性有x和y表示横纵坐标,并为其创建初始化方法__init__。
请重载方法__str__为输出坐标’(x, y)'。
请重载方法__add__,更改Coordinate类的相加运算为横坐标与横坐标相加,纵坐标与纵坐标相加,返回结果也是Coordinate类。
现在输入两组横纵坐标x和y,请将其初始化为两个Coordinate类的实例c1和c2,并将坐标相加后输出结果。
输入描述:
第一行输入两个整数x1与y1,以空格间隔。
第二行输入两个整数x2与y2,以空格间隔。
输出描述:
输出相加后的坐标。
示例1
输入:
1 2
3 4
复制
输出:
(4, 6)
复制

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值