写点什么

Python 基础练习题(二)

作者:漫步桔田
  • 2023-02-23
    北京
  • 本文字数:5605 字

    阅读完需:约 18 分钟

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


发布于: 刚刚阅读数: 3
用户头像

漫步桔田

关注

编程届一名小学生,热心分享编程知识。 2022-08-25 加入

阿里云社区专家博主、CSDN领域新星创作者。

评论

发布
暂无评论
Python 基础练习题(二)_漫步桔田_InfoQ写作社区