python第四周

1:

num_str = input("请输入数字序列,以0结束:")
max_num = int(num_str[0])
count = 1

for i in range(1, len(num_str)):
    num = int(num_str[i])
    if num > max_num:
        max_num = num
        count = 1
    elif num == max_num:
        count += 1

print("最大数是{},出现次数为{}。".format(max_num, count))

2:

decimal_num = int(input("请输入一个十进制整数:")) 
binary_num = bin(decimal_num)  
print(f"对应的二进制数为:{binary_num[2:]}")  

3:

decimal_num = int(input("请输入一个十进制整数:"))
hex_num = hex(decimal_num)
print("该整数的十六进制表示为:" + hex_num)

4:

import random
sum = 0
for i in range (0, 1000001):
    x = random.random() * random.choice([-1,1])
    y = random.random() * random.choice([-1,1])
    if x<= 0 or ( x >= 0 and y >= 0 and (y / (1 - x) >= 1)):
        sum += 1
a = sum / 1000000
print("一万个随机点落在奇数区域的概率是%.12f"%a)

5:

leap_years  =  []
for  year  in  range(2001,  2101):
        if  year  %  4  ==  0  and  year  %  100  !=  0  or  year  %  400  ==  0:
                leap_years.append(year)
for  i,  leap_year  in  enumerate(leap_years):
        print(leap_year,  end='  ')
        if  (i  +  1)  %  10  ==  0:
                print()

6:

number = int(input("请输入一个十进制的数:"))
def decToHex(number):
    hexStr = ""
    while number != 0:
        temp = number % 16
        if temp < 10:
            hexStr = str(temp) + hexStr
        else:
            hexStr = chr(55 + temp) + hexStr
        number //= 16   # number = number // 16
    return hexStr
hexStr = decToHex(number)
print("十进制数%d,对应的十六进制数是%s"%(number,hexStr))

7:

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

def sumDigits(n):
    sum = 0
    while n != 0:
        sum += n % 10
        n = n // 10
    return sum

print(sumDigits(number))

8:

9:

number = int(input("请输入一个整数:"))
def reverse(number):
    revNum = 0
    while number != 0:
        revNum = revNum * 10 + number % 10
        number //= 10
    return revNum
print(reverse(number))

10:

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

11:

def m(i):
    sum = 0
    print(i, end="\t\t\t\t")
    for i in range(1,i+1):
       sum += i / (i + 1)
    return sum
print("i\t\t\t\tm(i)")
for i in range(1, 21):
    print("%.4f"%m(i))

12:

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("请输入正确的数")

13:

import  math
def  sqrt(n):
        lastGuess  =  1
        nextGuess  =  (lastGuess  +  n  /  lastGuess)  /  2
        while  abs(nextGuess  -  lastGuess)  >=  0.0001:
                lastGuess  =  nextGuess
                nextGuess  =  (lastGuess  +  n  /  lastGuess)  /  2
        return  nextGuess
print(sqrt(15))

14:

def  is_prime(n):
        if  n  ==  1:
                return  False
        elif  n  ==  2:
                return  True
        else:
                for  i  in  range(2,  int(n  **  0.5)  +  1):
                        if  n  %  i  ==  0:
                                return  False
                return  True
def  is_palindrome(n):
        return  str(n)  ==  str(n)[::-1]
count  =  0
num  =  2
while  count  <  100:
        if  is_prime(num)  and  is_palindrome(num):
                print("{:>5d}".format(num),  end="  ")
                count  +=  1
                if  count  %  10  ==  0:
                        print()
        num  +=  1

15:

def  is_prime(n):
        if  n  <  2:
                return  False
        for  i  in  range(2,  int(n**0.5)+1):
                if  n  %  i  ==  0:
                        return  False
        return  True
def  is_reversible_prime(n):
        if  is_prime(n):
                s  =  str(n)
                if  s  ==  s[::-1]:
                        return  False
                if  is_prime(int(s[::-1])):
                        return  True
        return  False
count  =  0
for  i  in  range(10,  100000):
        if  is_reversible_prime(i):
                print(f'{i:<5}',  end='')
                count  +=  1
                if  count  %  10  ==  0:
                        print()
        if  count  ==  100:
                break

16:

def  is_prime(n):    
        if  n  <=  1:
                return  False
        for  i  in  range(2,  int(n**0.5)+1):
                if  n  %  i  ==  0:
                        return  False
        return  True
for  p  in  range(1,  32):
        n  =  2**p  -  1   
        if  is_prime(n):
                print(p,  n)

17:

def  is_prime(n):
        if  n  ==  2:
                return  True
        elif  n  <  2  or  n  %  2  ==  0:
                return  False
        else:
                for  i  in  range(3,  int(n**0.5)+1,  2):
                        if  n  %  i  ==  0:
                                return  False
                return  True
def  find_twin_primes(n):
        for  i  in  range(3,  n):
                if  is_prime(i)  and  is_prime(i+2):
                        print("({},  {})".format(i,  i+2))
find_twin_primes(1000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值