【Python】Exercise---Function Design

"""
数据:一个整数 number
      余数  y
步骤:
1、提示用户输入一个整数
2、定义一个十进制转十六进制的函数decToHex
    当数字不为0时开始循环,y = number % 16
     拼接余数
    若y<10,正常输出
    若y>10,10-A,11-B,12-C,13-D,15-E
     每次数字整除16后都将结果赋给number
     知道number为0 循环结束
     返回拼接的余数
3、调用该函数

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

def decToHex(number):
    b = ""
    while number != 0:
        y = number % 16
        if y < 10:
            b = str(y) + b
        else:
            b = chr(55 + y) + b
        number //= 16
    return b

b = decToHex(number)
print(b)

Test Results:

 

"""
数据:一个整数number
步骤:
1、提示用户输入一个整数
2、定义一个求这个证书各个位的和的函数
   当 number = 0,循环结束
   当number > 0,number不断取余,每次取余都累加起来
      并且number 每次都整除10后赋给新的number直到number为0
3、调用函数
"""
number = int(input("请输入一个整数:"))

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

print(sumDigits(number))

Test Results:

 

"""
数据:一个整数number
步骤:
1、提示用户输入一个整数
2、定义两个函数
   2.1 定义求回文数函数
   2.2定义判断是否为回文数函数
   则会调用函数1
3、调用函数2
"""
num = int(input("Enter a number:"))
def reverse(num):
    num_str = ""
    while num % 10 != 0:
        y = num % 10
        num_str += str(y)
        num //= 10
    return int(num_str)

def isPalindrome(num):
    num_str = reverse(num)
    if num_str != num:
        return False
    return True
print(isPalindrome(num))

Test Results:

 

"""
数据:一个整数number
步骤:
1、提示用户输入一个整数
2、定义函数
 2.1 当number不为0开始循环
    2.1.1 number对10取余
    2.1.2 拼接余数
    2.1.3 对number整除付给新的number
    2.1.4当number为0时循环结束
3、调用函数
"""
number = int(input("请输入一个整数:"))

def reverse(number):
    b = ""
    while number != 0:
        y = number % 10
        b += str(y)
        number = number // 10
    return int(b)

print(reverse(number))

Test Results:

 

"""
步骤:
1、定义摄氏度转化摄氏度函数
  1.1 根据公式计算华摄氏度
  1.2返回华摄氏度
2、定义华摄氏度转摄氏度函数
  2.1 根据公式计算摄氏度
  2.2返回摄氏度
3、调用函数
"""
def celsiusToFahrenheit(celsius):
    return (9 / 5) * celsius + 32
def fahrenheitToCelsius(fahrenheit):
    return (5 / 9) * (fahrenheit - 32)

print("\tCelsius\tFahrenheit")
for i in range(40,30,-1):
    print("\t%.1f\t%.1f"%(i,celsiusToFahrenheit(i)))

print("\tFahrenheit\tCelsius")
for i in range(120,20,-10):
    print("\t%.1f\t%.2f"%(i,fahrenheitToCelsius(i)))

Test Results:

 

"""
步骤:
1、定义求数列和的函数
2、调用函数
"""
def sumSL(i):
    m = 0
    for n in range(1,i+1):
        m = m + n / (n + 1)
    return m
for i in range(1,21):
    print("i=%d时,m=%.4f"%(i,sumSL(i)))

Test Results:

 

"""
步骤:
1、提示用户输入三角形三个边长
2、定义计算三角形面积公式函数
  2.1根据公式计算三角形面积
  2.2返回面积
3、定义读入三角形是否成立的函数
  3.1 如果任意两边之和大于第三边,则三角形成立
  3.2 如果成立调用计算三角形面积公式函数
4、调用判断三角形是否成立的函数
"""
def isValid(s1,s2,s3):
    if s1 + s2 > s3 and s1 + s3 > s2 and s2 + s3 > s1:
        return True
    return False

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

s1,s2,s3 = eval(input("Enter three sides in double:"))
if isValid(s1,s2,s3):
    print("The area of the triangle is ",area(s1,s2,s3))
else:
    print("Input is invalid")

Test Results:

 

"""
Demo 62
步骤;
1、定义平方根函数
  1.1定义lastGuess
  1.2根据公式计算nextGuess
  1.3如果:nextGuess的值与lastGuess值之差小于0.0001,则返回nextGuess,程序结束
     否则:将nextGuess的值赋给lastGuess继续循环
2、提示用户输入一个数字
3、调用函数
"""
def sqrt(number):
    lastGuess = 1
    while True:
        nextGuess = (lastGuess + (number / lastGuess)) / 2
        if abs(nextGuess - lastGuess) < 0.0001:
            return nextGuess
        else:
            lastGuess = nextGuess

number = float(input("Enter a positive number:"))
print(sqrt(number))

Test Results:

 

"""
1、定义是否反向数字函数
    num = 0
    number = 123
    num = 0 * 10 + 123 % 10 = 3
    num = 3 * 10 + 12 % 10 = 32
    num = 32*10 + 1% 10 = 321
2、定义是否回文函数
  2.1调用是否反向数字函数
     若该数字与反向数字相等,True
     不相等 False
3、定义是否为素数函数
  3.1 若一个数字只能被除了1和本身整除,为素数
4、调用函数
"""
def reverse(number):
    num = 0
    while number != 0:
        num = num * 10 + number % 10
        number //= 10
    return num

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

def isSuShu(number):
    for i in range(2, number // 2 + 1):
        if number % i == 0:
            return False
    return True

count = 0
number = 2
while count <= 100:
    if isPalindrome(number) and isSuShu(number):
        print(number, end="\t")
        count += 1
        if count % 10 == 0:
            print()
    number += 1

Test Results:

 

def isSuShu(number):
    for i in range(2, number // 2 + 1):
        if number % i == 0:
            return False
    return True

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

count = 0
number = 2
while count < 100:
    if isSuShu(number) and isSuShu(reverse(number)) and not isPalindrome(number):
        print(number, end=" ")
        count += 1
        if count % 10 == 0:
            print()
    number += 1

Test Results:

 

def isSuShu(num):
    for i in range(2,num // 2 + 1):
        if num % i == 0:
            return False
    else:
        return True

for p in range(2,32):
    num = 2 ** p - 1
    if isSuShu(num):
        print(num)

Test Results:

 

def isSuShu(num):
    for i in range(2,num // 2 + 1):
        if num % i == 0:
            return False
    else:
        return True
for i in range(2,1000):
    if isSuShu(i) and isSuShu(i + 2):
        print("(%d,%d)"%(i,i+2))

Test Results:

 

 

 

Guess you like

Origin blog.csdn.net/trichloromethane/article/details/108411035
Recommended