Python 基础练习题(二)
一、 运算符号
1.为了辅导刚上小学的妹妹做功课,牛牛想用 Python 写一个加减器帮助妹妹巩固加减运算。现要求输入两个数字 x 与 y,分别输出 x+y 的结果和 x-y 的结果。
x = int(input())
y = int(input())
print(x + y)
print(x - y)
2.刚刚学习 Python 的牛牛发现,同样的符号出现两次可能代表不同的运算,比如*与**。现输入两个数字 x 与 y,请分别计算 x * y 与 xy。
x = int(input())
y = int(input())
print(x * y)
print(x ** y)
3.我们都知道在计算机里除法有两种,一种是整除,结果有商和余数,另一种则是将其除到有小数。现输入两个数字 x 与 y,分别计算两种除法下 x/y 的结果。
x = int(input())
y = int(input())
print(x//y,x%y)
print('%.2f' %(x/y))
4.牛牛有一个习惯,新认识一个朋友他就想知道这个朋友和自己的年龄是不是一样大,输入两个整数表示牛牛的年龄和朋友的年龄,请输出牛牛的年龄是否等于朋友的年龄的比较结果?
num = input().split()
print(int(num[0])==int(num[1]))
5.牛牛在和牛妹玩猜数字游戏,他们想请你写一个快速判断牛牛的数字是不是大于牛妹数字的程序。输入两个整数,以空格间隔,输出第一个数字是否大于第二个数字,第一个数字是否小于第二个数字。
num = input().split()
print(int(num[0]) > int(num[1]))
print(int(num[0]) < int(num[1]))
6.牛妹去游乐园,对于某项目,如果牛妹的身高 k 不超过某个标准 x,就不需要收取额外费用,但是该项目有需要身高不低于 y 才可以保障安全。现依次输入三个数字 k、x、y,牛妹想让你帮她比较一下,她的身高是否不超过 x,是否不低于 y。
num = input().split()
print(float(num[0]) <= float(num[1]))
print(float(num[0]) >= float(num[2]))
7.牛牛想要锻炼自己的逻辑能力,于是输入了两个整型变量 x 和 y,分别判断它们的与、或、非关系,你能帮他输出 x 与 y,x 或 y,非 x,非 y 的值吗?
num = input().split()
print(int(num[0]) and int(num[1]))
print(int(num[0]) or int(num[1]))
print(not(int(num[0])))
print(not(int(num[1])))
8.正在学习 Python 的牛可乐,对 Python 里面的大小比较很疑惑。他知道数字之间可以相等,有大小关系,但是字符串之间怎么比较,他就很纳闷了。现在牛可乐输入两个字符串 s1 与 s2,请你帮他比较这两个字符串是否相等,两个字符串各自调用 lower 函数后还是否相等。
str1 = input()
str2 = input()
print(str1==str2)
print(str1.lower()==str2.lower())
9.牛客网内部有一个刷题俱乐部,是大家比拼刷题与交流算法的地方。现在给出俱乐部的名单,请以列表的形式记录它们,并使用 Python 的成员运算检验给出的名字 name 是否属于这个俱乐部?(名字区分大小写)
name = input().split()
query = input()
print(query in name)
10.Python 有位运算,是直接将数字看成二进制,直接对二进制数字的每一位进行运算。现输入两个十进制整数 x、y,请计算它们的位与、位或,输出按照十进制的形式。
name = input().split()
print(int(name[0])&int(name[1]))
print(int(name[0])|int(name[1]))
11.牛客网为员工举行了一项快速心算大赛,需要程序员大大写一款涉及加减乘除的验算小程序。假如输入的数字分别是 x、y、z、k,请输出 x+y 的结果与 z-k 的结果相乘的值。
num = input().split()
print((int(num[0])+int(num[1]))*(int(num[2])-int(num[3])))
二、 条件语句
1.Python 的条件语句依靠将运算结果转变成布尔值后进行判断,然后分支,如果我们直接判断布尔值会怎么样呢?输入布尔变量,使用条件语句判断,如果为真则输出"Hello World!",否则输出"Erros!"。
num = int(input())
if num:
print('Hello World!')
else:
print('Erros!')
2.创建一个空列表 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!')
3.创建一个依次包含字符串'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']
current_users = [name.upper() for name in current_users]
for name in new_users:
if name.upper() in current_users :
print('The user name {} has already been registered! Please change it and try again!'.format(name))
else:
print('Congratulations, the user name {} is available!'.format(name))
4.客食堂今天准备了很多丰盛的午餐, 'pizza':10 块钱一份,'rice' :2 块钱一份,'yogurt':5 块钱一份,剩下的其他菜品都是 8 块钱一份。牛牛在某窗口点餐,请你根据他输入的字符串,使用 if-elif-else 语句判断牛牛需要花费多少钱?
foods = { 'pizza':10,'rice':2 ,'yogurt':5}
food = input('')
if food in foods:
print(foods[food])
else:
print(8)
5.牛牛在门头沟大学学习,一学年过去了,需要根据他的成绩计算他的平均绩点,假如绩点与等级的对应关系如下表所示。请根据输入的等级和学分数(A-4.0、 B-3.0、C-2.0、 D-1.0、 F - 0),计算牛牛的均绩(每门课学分乘上单门课绩点,求和后对学分求均值)。
grades = {'A': 4.0, 'B': 3.0, 'C': 2.0, 'D': 1.0, 'F': 0}
grades_sum = 0
number_sum = 0
while True:
x = input()
if x == 'False':
break
else:
y = float(input())
grades_sum +=grades[x] * y
number_sum += y
print('%.2f' %(grades_sum/number_sum))
6.牛客网的登录系统需要验证用户名与密码,当二者都正确时才允许登录,其中管理员的用户名为'admis',密码为'Nowcoder666'。请你使用 if-else 语句,根据输入的用户名 ID 和密码,判断该用户等否登录。
name = input()
password = input()
if name == 'admis' and password == 'Nowcoder666':
print('Welcome!')
else:
print('user id or password is not correct!')
三、 循环语句
1.创建一个依次包含字符串'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))
2.牛牛、牛妹和牛可乐都是 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('Hi, {}! Welcome to Nowcoder!'.format(name))
print('Happy Programmers\' Day to everyone!')
3.牛牛刚学循环语句,你能教他使用 for 语句创建一个从 10 到 50 的数字列表吗?请输出完整列表,并输出列表的首尾元素检验是否是从 10 到 50。
nums = [num for num in range(10,51)]
print(nums)
print(nums[0],nums[-1])
4.牛牛有一个列表,记录了他和同事们的年龄,你能用 for 循环遍历链表的每一个元素,将其累加求得他们年龄的总和与平均数吗?
num = input().split()
age = [int(i) for i in num]
print(sum(age),'%.1f'%(sum(age)/len(age)))
5.通过给函数 range()指定第三个参数来创建一个列表 my_list,其中包含 [0, 19] 中的所有偶数;再使用一个 for 循环将这些数字都打印出来(每个数字独占一行)。
my_list = [num for num in range(0,19,2)]
for x in my_list:
print(x)
6.创建一个列表 my_list,其中包括 [1, 50] 内全部能被 5 整除的数字;再使用一个 for 循环将这个列表中的数字都打印出来(每个数字独占一行)。
my_list = [num for num in range(1,51) if num%5==0]
for x in my_list:
print(x)
7.在 Python 中, * 代表乘法运算, ** 代表次方运算。请创建一个空列表 my_list,使用 for 循环、range()函数和 append()函数令列表 my_list 包含底数 2 的 [1, 10] 次方,再使用一个 for 循环将这些次方数都打印出来(每个数字独占一行)。
my_list = []
for num in range(1,11):
my_list.append(2**num)
for i in my_list:
print(i)
8.Python 支持的解析操作,可以根据某些元素创建列表。请你使用列表解析创建一个 0-9 的列表,并输出该列表。
num= [i for i in range(10)]
print(num)
9.牛妹有一个暑期想吃的东西的清单,你可以把它视作一个 Python 的 list,['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']。牛妹决定从清单最后一种食物开始往前吃,每次吃掉一种食物就把它从 list 中 pop 掉,请使用 while 循环依次打印牛妹每次吃掉一种食物后剩余的清单。
name = ['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']
while name:
name.pop()
print(name)
10.创建一个依次包含字符串'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 name in users_list:
if name == 'HR':
print( 'Hi, {}! Would you like to hire someone?'.format(name))
else:
print('Hi, {}! Welcome to Nowcoder!'.format(name))
11.牛牛在牛客网举行抽奖游戏,他准备了一个列表的元素[3, 45, 9, 8, 12, 89, 103, 42, 54, 79],打算依次输出这些元素。他让牛妹随便猜一个数字 x,在输出的时候如果输出的元素等于牛妹猜的 x,就不再继续输出。请你使用 Python 的 for 循环模拟这个输出过程,并根据输入的 x 使用 break 语句提前结束循环。
name = [3, 45, 9, 8, 12, 89, 103, 42, 54, 79]
x = int(input())
for i in name:
if x == i:
break
else:
print(i)
12.牛客网在玩数数字游戏,员工一致认为 13 是一个“不详的数字”,请你使用 for 循环帮他们从 1 数到 15,并使用 continue 语句跳过 13。
for i in range(1,16):
if i == 13:
continue
else:
print(i,end=' ')
13.牛牛正在做矩阵运算,就是将矩阵中每个位置的元素都乘上 n。现有一个矩阵[[1, 2, 3], [4, 5, 6], [7, 8, 9]],请使用 list 记录该矩阵,对于牛牛输入的数字 n,输出该矩阵乘以 n 的结果。
nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
num = int(input())
for x in nums:
for y in range(3):
x[y] = x[y] * num
print(nums)
四、元组类型
1.牛客运动会上有一项双人项目,因为报名成功以后双人成员不允许被修改,因此请使用元组(tuple)进行记录。先输入两个人的名字,请输出他们报名成功以后的元组。
name1 = input()
name2 = input()
name = name1, name2
print(name)
2.牛牛和牛妹报名了牛客运动会的双人项目,但是由于比赛前一天牛妹身体不适,不能参加第二天的运动,于是想让牛可乐代替自己。请创建一个依次包含字符串'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:
print('The entry form cannot be modified!')
3.学校录入考试排名信息以后,为了防止修改,都会记录为 Python 元组。请你根据输入的字符串,使用 tuple 函数将它们作为考生姓名记录到元组中,并使用切片法输出前三名同学的名字。
name = tuple(input().split())
print(name[:3])
4.牛客网有一份秘密名单,['Tom', 'Tony', 'Allen', 'Cydin', 'Lucy', 'Anna'],请将它们创建为不可被修改的 Python 元组后,输出整个元组。对于牛牛输入的名字 name,请使用成员运算检验它是否出现在这份秘密名单中,若是在名单中则输出'Congratulations!',否则输出'What a pity!'.
name = tuple(['Tom', 'Tony', 'Allen', 'Cydin', 'Lucy', 'Anna'])
print(name)
x = input()
if x in name:
print('Congratulations!')
else:
print('What a pity!')
5.牛牛有一个元组,其中记录数字 1-5,请创建该元组,并使用 len 函数获取该元组的长度。
牛牛觉得这个元组太短了,想要在该元组后再连接一个 6-10 的元祖,请输出连接后的元组及长度。
num1 = [i for i in range(1, 6)]
print(tuple(num1))
print(len(tuple(num1)))
num2 = [i for i in range(6, 11)]
num = num1 + num2
print(tuple(num))
print(len(tuple(num)))
版权声明: 本文为 InfoQ 作者【漫步桔田】的原创文章。
原文链接:【http://xie.infoq.cn/article/e1a066893f278d7f98e04d5ab】。文章转载请联系作者。
评论