python第五章习题

5.1

点击查看代码
def draw_tianzi_grid(size):
    """
    用字符方式打印输出一个简单的田字格
    
    参数:
    size -- 控制田字格中每个小格子的大小(行数和列数)
    """
    if size < 1:
        print("大小必须大于等于1")
        return
    
    # 计算总行数和列数(2条水平分隔线和2条垂直分隔线)
    # 每个小格子有size行size列字符
    total_lines = size * 2 + 3  # 2个小格子 + 3条线(上边框、中线和下边框)
    
    for i in range(total_lines):
        line = []
        for j in range(total_lines):
            # 判断是否在水平分隔线上(包括边框)
            if i % (size + 1) == 0:
                # 判断是否在垂直分隔线上(包括边框)
                if j % (size + 1) == 0:
                    line.append('+')
                else:
                    line.append('-')
            else:
                # 判断是否在垂直分隔线上(包括边框)
                if j % (size + 1) == 0:
                    line.append('|')
                else:
                    line.append(' ')
        print(''.join(line))
N=int(input())
draw_tianzi_grid(N)
5.2
点击查看代码
def isOdd(num):
    try:
        num=int(num)
        if num%2==0:
            return False
        else:
            return True
    except ValueError:
        return False
N=input()
print(isOdd(N))
5.3
点击查看代码
def isPrime(num):
    try:
        num=int(num)
        if num<=3:
            return True
        for i in range(2,int(num**0.5)+1):
            if num%i==0:
                return False
        return True
    except ValueError:
        return False
N=input()
print(isPrime(N))

5.4
点击查看代码
def PrimeList(num):
    prime_num=[1,]
    try:
        num=int(num)
        for num in range(2,num+1):
            prime=True
            for i in range(2,int(num**0.5)+1):
                if num%i==0:
                    prime= False
                    break
            if prime:
                prime_num.append(num)
        return prime_num
    except ValueError:
        return 0
N=input()
print(PrimeList(N))

5.5
点击查看代码
def isNum(num):
    try:
        complex(num)
        return True
    except ValueError:
        return False
num=input()
print(isNum(num))

5.6
点击查看代码
def multi(*num):
    if num:
        if not all(num):
            return 0
        else:
            mul = 1
            for i in num:
                mul=mul*i
            return mul
    else:
        None
input_str = input()
num_list = [float(x) for x in input_str.split()]
result=multi(*num_list)
print(result)
5.7
点击查看代码
def FabN(num):
    f1=1
    f2=1
    if num==1 or num==2:
        return 1
    else:
        for i in range(3,num+1):
            f3=f1+f2
            f1=f2
            f2=f3
        return f3
n=int(input())
print(FabN(n))
5.8
点击查看代码
def isType(data):
    if isinstance(data, int):
        return "整数"
    elif isinstance(data, float):
        return "小数"
    elif isinstance(data, complex):
        return "复数"
    elif isinstance(data, str):
        return "字符串"
    elif isinstance(data, list):
        return "列表"
    elif isinstance(data, dict):
        return "字典"
    elif isinstance(data, set):
        return "集合"
    elif isinstance(data, tuple):
        return "元组"

# 获取用户输入
user_input = input("请输入一个数据: ")

try:
    # 使用eval尝试将输入转换为实际的对象
    data = eval(user_input)
    result = isType(data)
except:
    # 如果转换失败,当作字符串处理
    result = isType(user_input)

print(f"你输入的数据类型是: {result}")
posted @ 2025-04-20 21:39  bolun123  阅读(19)  评论(0)    收藏  举报