Python 练习题

 一、编写程序读取整数,找出它们中的最大值,然后计算它的出现次数,假设以数字0结束 

max = 0
count = 0
while True:
    n = eval(input(" 请输入一个数值:"))
    if n == 0:
        print("输入结束!")
        break
    elif n > max:
        max = n
        count = 1
    elif n == max:
        count += 1
print("最大值是{},出现了{}次".format(max, count))

二、编写程序提示用户输入一个十进制整数,然后显示它对应的二进制数 

 

i = int(input("请输入一个数:"))
w = 0
for x in range(0, 1000):
    if i % 2 == 1:
        w += 1 * 10 ** x
        i = (i) // 2
    else:
        i = i / 2
    if i == 0:
        print("%s" % w, end="")
        break;

 三、编写程序提示用户输入一个十进制整数,然后显示它对应的十六进制数

 

i = int(input("请输入一个数:"))
binstr = ""
while i != 0:
    a = i % 16
    if a >= 0 and a < 10 :
        binstr = str(a) + binstr
        i = i // 16
    elif a == 10:
        a = "A"
        binstr = str(a) + binstr
        i = i // 16
    elif a == 11:
        a = "B"
        binstr = str(a) + binstr
        i = i // 16
    elif a == 12:
        a = "C"
        binstr = str(a) + binstr
        i = i // 16
    elif a == 13:
        a = "D"
        binstr = str(a) + binstr
        i = i // 16
    elif a == 14:
        a = "E"
        binstr = str(a) + binstr
        i = i // 16
    elif a == 15:
        a = "F"
        binstr = str(a) + binstr
        i = i // 16
print(binstr)

四、编写程序显示21世纪(从2001年到2100年)里所有的闰年,每行显示10个闰年

count = 0
print("21实际中的闰年有:")
for i in range(2001, 2101):
    if(i % 4 == 0 and i % 100 != 0 or i % 400 == 0):
        print(i, end=" ")
        count = count + 1
        if count % 10 == 0:
            print("\n")

五、编写一个程序,计算一个整数各个数字的和

def func(num):
    sum = 0
    while num != 0:
        n = num % 10
        sum += n
        num = num // 10
    print(sum)


num = int(input("请输入一个整数:"))
func(num)

 六、编写一个测试程序,提示用户输入一个整数,然后输出这个整数是不是回文数

 

numbers = int(input("请输入一个整数:"))

def isPalindrome(number):
    revnum = reverse(number)
    return number == revnum

def reverse(number):
    revnum = 0
    while number != 0:
        revnum = revnum * 10 + number % 10
        number //= 10
    return revnum

print(isPalindrome(numbers))

 七、编写下面的函数,反向显示一个整数

八、摄氏温度

def celsiusToFahrenheit(celsius):
    Fahrenheit = (9 / 5) * celsius + 32
    return Fahrenheit


def fahrenheitToCelsius(fahrenheit):
    celsius = (5 / 9) * (fahrenheit - 32)
    return celsius

print("Celsius\t\tFahrenheit\t\tFahrenheit\t\tCelsius")
i = 40
for j in range(120, 20, -10):
    print(i, end="\t\t\t")
    print("%.1f" % (celsiusToFahrenheit(i)), end="\t\t\t")
    print(j, end="\t\t\t")
    print("%.2f" % (fahrenheitToCelsius(j)))
    i -= 1
    if i == 30:
        break

九、数列

def m(i):
    sum = 0
    if i >= 1:
        for n in range(1, i + 1):
            sum += n / (n+1)
    return sum


print(m(20))

十、编写一个测试程序,读入三角形三边的值,若输入有效则计算面积;否则,显示输入无效

def isValid(s1, s2, s3):
    return s1 + s2 > s3 and s2 + s3 > s1 and s1 + s3 > s2

def area(s1, s2, s3):
    s = (s1 + s2 + s3) / 2
    return (s * (s - s1) * (s - s2) * (s - s3)) ** 0.5

s1, s2, s3 = eval(input("请输入三角形的三边:"))

if isValid(s1, s2, s3):
    print("面积是 %.2f" % area(s1, s2, s3))
else:
    print("测试错误")

十一、回文素数

number = int(input("输入一个整数:"))


def isPalindrome(number):
    revNum = reverse(number)
    return number == revNum


def reverse(number):
    revNum = 0
    while number != 0:
        revNum = revNum * 10 + number % 10
        number //= 10
    return revNum


print(isPalindrome(number))

十二、梅森素数

def meisen(n):
    k = 1
    for i in range(2, n):
        if a % i == 0:
            k = 0
            return False
    if k == 1:
        return True


p = 1
while p <= 31:
    a = (2 ** p) - 1
    p += 1
    if meisen(a):
        print(a, end=", ")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值