• python经典百题之根据值打印*


    题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的 *。

    程序分析

    我们需要读取7个整数值,每个值在范围1到50之间,然后根据每个值的大小打印相应数量的星号(*)。需要考虑输入值的合法性和打印星号的逻辑。

    解题思路

    1. 方法1: 使用循环

      • 通过循环读取7个整数值,并在每次读取值时打印相应数量的星号。
      • 确保输入的值在合法范围内(1到50)。
    2. 方法2: 使用函数

      • 将读取值和打印星号的逻辑封装成一个函数,简化主程序的结构。
    3. 方法3: 使用列表推导式

      • 使用列表推导式生成星号的数量列表,然后打印出相应数量的星号。

    实现代码及优缺点

    方法1: 使用循环

    def method1():
        for _ in range(7):
            num = int(input("Enter a number (1-50): "))
            if 1 <= num <= 50:
                print('*' * num)
            else:
                print("Invalid input. Please enter a number between 1 and 50.")
    
    # 优点:
    # - 简单直接,易于理解和实现。
    # - 不需要额外的数据结构。
    
    # 缺点:
    # - 需要手动输入7个数,可能会增加用户的输入错误。
    
    method1()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    方法2: 使用函数

    def print_stars(num):
        if 1 <= num <= 50:
            print('*' * num)
        else:
            print("Invalid input. Please enter a number between 1 and 50.")
    
    def method2():
        for _ in range(7):
            num = int(input("Enter a number (1-50): "))
            print_stars(num)
    
    # 优点:
    # - 函数提高了代码的重用性和可维护性。
    # - 主程序更清晰,易于理解。
    
    # 缺点:
    # - 需要手动输入7个数,可能会增加用户的输入错误。
    
    method2()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    方法3: 使用列表推导式

    def method3():
        nums = [int(input("Enter a number (1-50): ")) for _ in range(7)]
        for num in nums:
            if 1 <= num <= 50:
                print('*' * num)
            else:
                print("Invalid input. Please enter a number between 1 and 50.")
    
    # 优点:
    # - 使用列表推导式简化了输入过程。
    # - 不需要手动输入7个数,减少了用户输入错误的可能性。
    
    # 缺点:
    # - 增加了一个列表的存储,占用一定的内存。
    
    method3()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    总结与推荐

    • 三种方法都能实现题目要求,具体使用哪种方法取决于实际需求和偏好。

    • 如果重视简单和直接的实现,且不介意手动输入7个数,方法1是一个不错的选择。

    • 如果希望提高代码的结构化和可维护性,并且有可能在其他部分需要使用相同逻辑,可以选择方法2,将逻辑封装成函数。

    • 如果希望简化输入过程,减少手动输入的次数,可以选择方法3,使用列表推导式。

    总体来说,根据具体情况选择最适合的方法是最重要的。

  • 相关阅读:
    【JavaEE】MyBatis resultMap与resultType 多表查询 (一对一 + 一对多) 详解
    微机原理与汇编语言-练习题
    windows上搭建llama小型私有模型
    MyBatis框架简介
    关于我的家乡网页设计主题题材——梧州14页HTML+CSS网页
    bclinux aarch64 ceph 14.2.10 彻底删除ceph集群及数据
    基于java的仓库管理系统
    Docker介绍
    CNN、ResNet学习笔记
    2022年信息安全工程师考试知识点:访问控制
  • 原文地址:https://blog.csdn.net/yechuanhui/article/details/133631490