Python语言上机题实现方法(持续更新...) (5)

29.用Python模拟简单的计算器,实现python中的基本计算运算,具体方法为:分三行输入,前两行输入数字,第三行输入一个运算符(包括:+、-、*、/、%、**),输出运算结果。注意,如果除数为0,需要输出“无法计算,请重新输入运算符:”,并且重新输入新的运算符。

【输入样例1】: 【输入样例2】:

7 10 3 0 / /

【输出样例1】: 【输出样例2】:

2.33 无法计算,请重新输入运算符:

【代码】:

def Input(a, b, symbol): if symbol == '+': print(a + b) elif symbol == '-': print(a - b) elif symbol == '*': print(a * b) elif symbol == 'http://www.likecs.com/': if b == 0: print("无法计算,请重新输入运算符:") Resymbol = input() Input(a, b, Resymbol) else: print("%.2f" % (a / b)) elif symbol == '%': print(a % b) elif symbol == '**': print(a ** b) a = float(input()) b = float(input()) symbol = input() Input(a, b, symbol)

30.四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。例如:当n为3时,有13 + 53 + 33 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。

【样例】:

输入:无 输出: 1634 8208 9474

【代码】:

for i in range(1000,10000): a = str(i) if i == pow(eval(a[0]), 4) + pow(eval(a[1]), 4) + pow(eval(a[2]), 4) + pow(eval(a[3]), 4): print(i)

31.给定一个非负整数列表,你最初位于列表的第一个位置(下标为0)。列表中的每个元素代表你在该位置可以跳跃的长度。判断你是否能够到达最后一个位置。

【样例1】:

输入: [2,3,1,1,4] 输出: true 解释: 我们从下标为 0 起跳,跳2步,到达下标为2的位置;然后再从下标为2起跳,跳 1步,到达下标为3的位置;然后再从下标为3起跳,到达最后一个位置。

【样例2】:

输入: [3,2,1,0,4] 输出: false

【代码】:

Oldlist = list(map(int,input().split(','))) Newlist = [] for k in Oldlist: Newlist.append(int(k)) l = len(Newlist) n = 0 while True: if Newlist[n] == 0: print('false') break n += Newlist[n] if n == l-1: print('true') break elif n >= l: print('false') break

32.猜数游戏。让计算机随机产生一个预设数字,范围在0-100之间,当用户输入的不是整数(如字母、浮点数)出错时,给出“输入内容必须为整数!”的提示,并让用户重新输入,若输入正确让用户通过键盘输入所猜的数,如果大于预设的数,显示“遗憾,太大了”;小于预设的数,显示“遗憾,太小了”;如此循环,直至猜中该数,显示“预测N次,你猜中了!”,其中N是用户输入数字的次数。

【注意】请各位同学自学用random()函数生成随机数的方法。

【代码】:

import random def Playgame(a, i, count): if not a.isdigit(): count += 1 print("输入内容必须为整数!") Rea = input() Playgame(Rea, i, count) else: a = int(a) if a > i: count += 1 print("遗憾,太大了") Rea = input() Playgame(Rea, i, count) elif a < i: count += 1 print("遗憾,太小了") Rea = input() Playgame(Rea, i, count) elif a == i: print("预测" + str(count) + "次,你猜中了!") a = input() i = random.randint(1,100) count = 1 Playgame(a, i, count)

33.【斐波拉契数列:这个数列从第三项开始,每一项都等于前两项之和】

题目内容:已知斐波拉契数列的前两项都是1,我们定义求斐波拉契数列的第n项(n<=50)的函数为fbnq,程序主体如下:

n = int(input()) print(fbnq(n))

请补充完成对fbnq函数的定义。

输入格式:共一行,为一个正整数。

输出格式:共一行,为一个正整数。

【输入样例】:

7

【输出样例】:

13

代码】:

def fbnq(n): if n in (1, 2): return 1 while n > 2: return fbnq(n - 1) + fbnq(n - 2) n = int(input()) print(fbnq(n))

34.【求两个数的最大公约数】

题目内容:输入两个正整数num1和num2(不超过1000),求它们的最大公约数并输出。我们定义求最大公约数的函数为hcf,给出程序主体如下:

num1 = int(input()) num2 = int(input()) print(hcf(num1, num2))

请补充完成hcf函数的定义。

输入格式:共两行,每一行输入一个不超过1000的正整数。

输出格式:共一行,输出一个正整数。

【输入样例】:

6 8

【输出样例】:

2

【代码】:

def hcf(num1, num2): x = num1 % num2 while x != 0: num1 = num2 num2 = x x = num1 % num2 return num2 num1 = int(input()) num2 = int(input()) print(hcf(num1, num2))

35.【求两个数的最小公倍数】

题目内容:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwxds.html