第五章课后习题 5.1-5.8

5.1 字符田字格绘制
 def draw_tianzi(size):
    if size < 2:
        print("田字格大小至少为2")
        return
    part_size = size // 2 
    for i in range(size+1):
        row = []
        for j in range(size+1):
            if i == 0 or i == size or j == 0 or j == size:
                row.append('+')
            elif i == part_size:
                row.append('-')
            elif j == part_size:
                row.append('|')
            else:
                row.append(' ')
        print(''.join(row))

draw_tianzi(5)

 

5.2 奇数判断
def isOdd(n):
    if isinstance(n,int) or (isinstance(n,float) and n.integer()):
        if int(n) % 2 == 1:
            return True
    return False

num = input()
print(isOdd(num))

 

5.4 质数判断
def isPrime(n):
    if not isinstance(n,int) or n<1:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    for i in range(2, int(n**0.5)+1, 2):
        if n % i == 0:
            return False
    return True

num = input()
print(isPrime(num))

 

5.5 字符数判断
 def isNum(n):
    try:
        complex(n) #尝试转换为复数,可以处理所有数字类型
        return True
    except ValueError:
        return False

n2 = input()
print(isNum(n2))

 

5.6 数字积运算
 def mulit(*s):
    sum = 1
    for i in s:
        sum *= i 
    return sum

s = input()
print(mulit(s))

 

5.7 斐波那契数列计算
 def FabN(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    return FabN(n-1) + FabN(n-2)

m = eval(input())
print(FabN(m))

 

5.8 数据类型判断
 def isType(s):
    if isinstance(s, int):
        return "整数"
    elif isinstance(s, float):
        return "小数"
    elif isinstance(s, complex):
        return "复数"
    elif isinstance(s, str):
        return "字符串"
    elif isinstance(s, list):
        return "列表"
    elif isinstance(s, dict):
        return "字典"
    elif isinstance(s, set):
        return "集合"
    elif isinstance(s, tuple):
        return "元组"
    else:
        return "未知类型"

s = input()
print(isType(s))

 

posted @ 2025-04-20 13:13  与尔5  阅读(7)  评论(0)    收藏  举报