第1题:(最大数的出现)编写程序读取整数,找出它们中的最大值,然后计算它的出现次数。假设输入以数字0结束。假设你输入的是“3 5 2 5 5 5 0”;程序找出的最大数是5,而5的出现次数是4。(提示:维护两个变量max 和count。变量max存储的是当前最大数,而count存储的是它的出现次数。初始状态下,将第一个值赋值给max,将1赋值给count。将max和每个随后的数字进行比较。如果这个数字大于max,就将它赋值给max且将count重置为1。如果这个数等于max,给count自增1。)
n = int(input("请输入你想要输入数的个数:"))
ls = [int(input(f"请输入第{i}个整数:"))
for i in range(1, n+1)]
print('您输入的数字有:{}'.format(ls))
max_num = max(ls)
print('这些数的最大值为:{}'.format(max_num))
count = ls.count(max_num)
print('{}出现的次数为{}'.format(max_num, count))
第2题: (十进制到二进制)编写程序提示用户输入一个十进制整数,然后显示它对应的二进制数。
dec = int(input("请输入一个十进制整数:"))
bin = ""
stack = []
while dec > 0:
rem = dec % 2
stack.append(rem)
dec = dec // 2
while stack:
bin += str(stack.pop())
print("对应的二进制数为:{}".format(bin))
第3题:(十进制到十六进制)编写程序提示用户输人一个十进制数,然后显示它对应的十六进制数。
dec = int(input("请输入一个十进制整数:"))
hex = ""
digits = {10:"A", 11:"B", 12:"C", 13:"D", 14:"E", 15:"F"}
while dec > 0:
rem = dec % 16
if rem in digits:
hex = digits[rem] + hex
else:
hex = str(rem) + hex
dec = dec // 16
print("对应的十六进制数为:{}".format(hex))
第4题:(蒙特卡罗模拟)一个正方形被分为四个更小的区域,如图a所示。如果你投掷一个飞镖到这个正方形一百万次,这个飞镖落在一个奇数区域里的概率是多少?编写程序模拟这个过程然后显式结果。(提示:将这个正方形的中心放在坐标系统的中心位置,如图b所示。在正方形中随机产生一个点,然后统计这个点落入奇数区域的次数。)
import random
a = 0
for i in range(1000000):
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
if x < 0 or (x > 0 and y > 0 and x + y <= 1):
a += 1
b = a / 1000000
print("在奇数区域的概率:", b)
第5题:(显示闰年)编写程序显示21世纪(从 2001年到2100 年)里所有的年,每行显示 10个年
这些年被一个空格隔开。
count = 0
for i in range(2001, 2101):
if i % 400 == 0 or i % 4 == 0 and i % 100 != 0:
print(i, end=" ")
count += 1
if count % 10 == 0:
print()
第6题:
num = int(input("请输入一个十进制数字:"))
def decToHex(num):
hexStr = ""
while num != 0:
a = num % 16
if a < 10:
hexStr = str(a) + hexStr
else:
hexStr = chr(55 + a) + hexStr
num //= 16
return hexStr
hexStr = decToHex(num)
print("十进制数%d,对应的十六进制数是%s" % (num, hexStr))
第7题:(求一个整数各个数字的和)编写一个函数,计算一个整数各个数字的和。使用下面的函数头:def sumDigits(n):
def sumDigits(n):
count = 0
str_n = str(n)
for i in str_n:
count += int(i)
return count
if __name__ == '__main__':
a = int(input("请输入一个整数:"))
print(f"{a}的各位数和为{sumDigits(a)}")
第8题:使用函数reverse'实现 isPalindrome。如果一个数的反向数和它的顺向数一样,那么这个数就被称为回文数。编写一个测试程序,提示用户输入一个整数,然后输出这个整数是不是回文数。
def reverse(n):
s = str(n)
r = s[::-1]
return int(r)
def isPalindrome(n):
if reverse(n) == n:
return True
return False
n = int(input("请输入一个整数: "))
if isPalindrome(n):
print(n, "是回文数")
else:
print(n, "不是回文数")
第9题:(反向显示一个整数)编写下面的函数,反向显示一个整数。
def reverseDisplay(n):
s = str(n)
r = s[::-1]
print(r)
n = int(input("请输入一个整数: "))
reverseDisplay(n)
第10题:
def celsius_To_Fahrenheit(celsius):
Fahrenheit = (9 / 5) * celsius + 32
return Fahrenheit
def Fahrenheit_TO_celsius(fahrenheit):
celsius = (5 / 9) * (fahrenheit - 32)
return celsius
print('Celsius\t\tFahrenheit\t\tCelsius\t\tFahrenheit')
i = 40
for j in range(120, 20, -10):
print(i, end='\t\t\t')
print('%.1f' % celsius_To_Fahrenheit(i), end='\t\t\t')
print(j, end='\t\t\t')
print('%.2f' % Fahrenheit_TO_celsius(j), end='\t\t\t')
print()
i -= 1
if i == 30:
break