Python-VBA函数之旅-input函数

目录

一、input函数的常见应用场景:

二、input函数使用注意事项:

三、如何用好input函数?

1、input函数:

1-1、Python:

1-2、VBA:

2、推荐阅读:

个人主页:神奇夜光杯-CSDN博客 

一、input函数的常见应用场景:

        input函数在Python中主要用于获取用户的文本输入,其基础用法相对直接,常见的应用场景有:

1、动态交互:使用input()函数可以根据用户的输入动态地改变程序的执行流程。例如,在创建一个交互式游戏或命令行工具时,可以根据用户的输入来更新游戏状态或执行不同的命令。

2、用户身份验证:通过input()函数可以获取用户的用户名和密码,然后进行验证,这可以用于简单的登录系统或访问控制。

3、复杂数据输入:虽然input()函数默认返回字符串,但我们可以结合其他函数(如`int()`, `float()`, `list()`, `dict()`等)来解析和处理用户输入的复杂数据类型。例如,通过分割字符串,我们可以将用户输入的多个值转换为一个列表或字典。

4、循环输入:使用循环结构(如`while`循环)结合input()函数,可以实现持续的用户输入,直到满足某个条件为止,这在需要用户输入多个值或进行多次选择时非常有用。

5、条件输入:通过结合条件语句(如`if-else`),我们可以根据用户的输入执行不同的操作。例如,根据用户的选择来显示不同的信息或执行不同的功能。

6、异常处理:由于用户输入可能是不预期的或无效的,因此使用异常处理(如`try-except`块)来捕获和处理可能的错误是非常重要的。这可以确保程序的健壮性和用户体验。

7、自定义输入提示和验证:通过自定义input()函数的提示信息,并结合逻辑验证用户输入的有效性,可以提高用户界面的友好性和程序的准确性。

8、构建交互式界面:结合其他库(如`curses`或第三方库如`tkinter`、`PyQt`等),可以使用input()函数构建更复杂的交互式界面。

        总之,任何需要与用户进行文本交互的程序都可以利用input()函数来收集用户输入。

二、input函数使用注意事项:

        使用Python的input()函数时,需要注意以下事项:

1、安全性和隐私保护:在获取用户输入时,特别要注意保护用户隐私和确保安全性,不要将敏感信息(如密码、个人身份信息)直接通过input()函数获取,而是应该使用更安全的方法来处理这些信息。

2、避免过度依赖用户输入:过度依赖用户输入可能导致程序逻辑复杂且容易出错,在设计程序时,应尽量减少对用户输入的依赖,或者提供默认值以简化输入过程。

3、考虑国际化和本地化:当面向不同语言和文化的用户时,需要考虑国际化和本地化的问题,确保提示信息和错误消息能够适应不同的语言和文化背景,以提高用户体验。

4、注意界面差异:input()函数通常用于命令行界面(CLI)的程序中,如果你正在开发一个图形用户界面(GUI)的程序,那么可能需要使用不同的方法来获取用户输入,比如通过按钮、文本框等控件。

5、输入长度限制:在某些情况下,你可能希望限制用户输入的长度,以避免程序处理过大的输入数据,可以通过在提示信息中说明长度限制,并在程序中检查输入长度来实现。

6、避免阻塞主线程:在GUI程序中,长时间运行的input()函数调用可能会阻塞主线程,导致界面无响应,在这种情况下,应该使用异步编程或线程来避免阻塞。

7、文档和注释:为使用input()函数的代码段提供适当的文档和注释,说明预期的输入类型、格式和用途,这有助于其他开发者理解你的代码,并减少潜在的错误和混淆。

        综上所述,使用input()函数时需要注意安全性、隐私保护、国际化、本地化、输入长度限制、避免阻塞主线程以及提供适当的文档和注释等方面的问题,通过谨慎处理用户输入并遵循最佳实践,你可以创建出更加健壮、安全和用户友好的程序。

三、如何用好input函数?

        要用好Python中的input()函数,需遵循以下建议及原则:

1、明确提示信息:提供清晰、具体的提示信息,告诉用户应该输入什么,这有助于用户理解你的程序期望什么类型的输入。

2、处理输入类型:由于input()总是返回字符串,所以你需要根据需要将其转换为其他类型,使用适当的类型转换函数,如`int()`, `float()`, `list()`, `dict()`等。

3、验证输入的有效性:对输入进行验证,确保它符合你的期望,使用条件语句和异常处理来检查输入的有效性。

4、提供默认值或备选方案:当用户没有提供期望的输入时,提供默认值或备选方案可以简化程序逻辑。

5、使用循环获取多个输入:如果需要用户输入多个值,可以使用循环来重复调用input()函数。

6、格式化提示和输出:使用字符串格式化来增强提示和输出的可读性。

7、处理可能的异常:总是准备处理可能发生的异常,如`ValueError`(当类型转换失败时)或`EOFError`(当在交互式解释器中使用`input()`时)。

8、保持输入简单明了:尽量避免让用户输入复杂的结构或长文本,如果可能,提供选项让用户选择,或使用其他输入方法(如文件读取或GUI控件)。

9、编写清晰的文档和注释:为你的代码编写清晰的文档和注释,解释每个input()函数调用的目的和预期的用户输入,这有助于其他开发者理解你的代码,并在需要时进行维护。

10、测试你的代码:确保对使用input()函数的代码进行充分的测试,包括正常输入、异常输入和边界情况,这有助于确保你的程序能够健壮地处理各种用户输入。

        总之,只有遵循这些建议和最佳实践,你才可以更好地利用Python中的input()函数,并创建出更加健壮、易用的程序。

1、input函数:
1-1、Python:
# 1.函数:input
# 2.功能:可以提示并接收用户的输入内容,将所有的输入内容按照字符串进行处理,并返回一个字符串
# 3.语法:input([prompt])
# 4.参数:prompt,可选参数,表示提示信息
# 5.返回值:返回一个字符串
# 6.说明:
# 7.示例:
# 用dir函数获取input函数的相关信息
print(dir(input))
# ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
#  '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__',
#  '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__',
#  '__str__', '__subclasshook__', '__text_signature__']

# 用help函数获取input函数的相关信息
help(input)

# 应用1:动态交互
# 简单的用户输入
# 提示用户输入名字
name = input("请输入你的名字:")
print(f"你好,{name}!")
# 请输入你的名字:Myelsa
# 你好,Myelsa!

# 选择菜单
# 选择菜单
print("请选择以下选项:")
print("1. 选项一")
print("2. 选项二")
print("3. 退出")
while True:
    choice = input("请输入你的选择(1-3):")
    if choice == '1':
        print("你选择了选项一")
    elif choice == '2':
        print("你选择了选项二")
    elif choice == '3':
        print("退出程序")
        break
    else:
        print("无效的输入,请重新选择")
# 请选择以下选项:
# 1. 选项一
# 2. 选项二
# 3. 退出
# 请输入你的选择(1-3):1
# 你选择了选项一
# 请输入你的选择(1-3):4
# 无效的输入,请重新选择

# 获取用户年龄并进行判断
age = input("请输入你的年龄:")
try:
    age = int(age)
    if age >= 18:
        print("你已经成年了")
    else:
        print("你还未成年")
except ValueError:
    print("无效的输入,请输入一个整数")
# 请输入你的年龄:18
# 你已经成年了

# 动态计算
num1 = input("请输入第一个数字:")
num2 = input("请输入第二个数字:")
try:
    num1 = float(num1)
    num2 = float(num2)
    result = num1 + num2
    print(f"{num1} + {num2} = {result}")
except ValueError:
    print("无效的输入,请输入数字")
# 请输入第一个数字:10
# 请输入第二个数字:24
# 10.0 + 24.0 = 34.0

# 应用2:用户身份验证
# 假设我们有一个预设的用户名和密码
correct_username = "myelsa"
correct_password = "123"
# 获取用户输入的用户名和密码
username = input("请输入用户名:")
password = input("请输入密码:")
# 检查用户名和密码是否正确
if username == correct_username and password == correct_password:
    print("身份验证成功!欢迎,", username)
else:
    print("身份验证失败!请检查您的用户名和密码是否正确。")
# 请输入用户名:myelsa
# 请输入密码:123
# 身份验证成功!欢迎, myelsa

# 应用3:复杂数据输入
# 输入列表
# 输入列表,每个元素通过空格分隔
input_str = input("请输入一个由空格分隔的元素列表:")
# 使用split方法将字符串转换为列表
input_list = input_str.split()
print("你输入的列表是:", input_list)
# 请输入一个由空格分隔的元素列表:3,5,6,8,10,11,24
# 你输入的列表是: ['3,5,6,8,10,11,24']

# 输入字典
# 输入字典,每个键值对通过冒号分隔,键值对之间通过逗号分隔
input_str = input("请输入一个由冒号分隔键和值,通过逗号分隔的字典:")
# 去除首尾空格,并按逗号分割成键值对
pairs = input_str.strip().split(',')
# 创建字典
input_dict = {}
for pair in pairs:
    key, value = pair.split(':')
    input_dict[key.strip()] = value.strip()
print("你输入的字典是:", input_dict)
# 请输入一个由冒号分隔键和值,通过逗号分隔的字典:Myelsa:18,Jimmy:15,Bruce:6
# 你输入的字典是: {'yelsa': '18', 'Jimmy': '15', 'Bruce': '6'}

# 输入自定义对象的属性
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return f"Person(name={self.name}, age={self.age})"
# 输入姓名和年龄来创建Person对象
name = input("请输入姓名:")
age = input("请输入年龄:")
try:
    age = int(age)  # 尝试将年龄转换为整数
    person = Person(name, age)
    print("你创建的Person对象是:", person)
except ValueError:
    print("年龄必须是整数,请重新输入。")
# 请输入姓名:Myelsa
# 请输入年龄:18
# 你创建的Person对象是: Person(name=Myelsa, age=18)

# 输入嵌套数据(如列表的列表)
# 输入嵌套列表,每个内部列表由空格分隔,外部列表由换行符分隔
input_str = ""
while True:
    line = input("请输入一个由空格分隔的元素列表(或输入'done'结束):")
    if line.lower() == 'done':
        break
    input_str += line + "\n"
# 使用eval函数(注意:eval有安全风险,仅用于演示目的)
nested_list = eval(input_str)
print("你输入的嵌套列表是:", nested_list)

# 应用4:循环输入
# 循环输入直到输入特定值
# 循环输入,直到用户输入'quit'为止
while True:
    user_input = input("请输入一些内容(输入'quit'退出):")
    if user_input.lower() == 'quit':
        break
    print("你输入的是:", user_input)
# 请输入一些内容(输入'quit'退出):myelsa
# 你输入的是: myelsa
# 请输入一些内容(输入'quit'退出):quit

# 循环输入并累加数字
# 循环输入数字,并累加,直到输入非数字为止
total = 0
while True:
    try:
        number = float(input("请输入一个数字(输入非数字退出):"))
        total += number
        print("当前累加和是:", total)
    except ValueError:
        print("输入的不是有效的数字,退出累加。")
        break
# 请输入一个数字(输入非数字退出):10
# 当前累加和是: 10.0
# 请输入一个数字(输入非数字退出):24
# 当前累加和是: 34.0
# 请输入一个数字(输入非数字退出):5
# 当前累加和是: 39.0
# 请输入一个数字(输入非数字退出):11
# 当前累加和是: 50.0
# 请输入一个数字(输入非数字退出):myelsa
# 输入的不是有效的数字,退出累加。

# 循环输入多个值并存入列表
# 循环输入多个值,并存入列表,直到输入'done'为止
values = []
while True:
    user_input = input("请输入一个值(输入'done'结束):")
    if user_input.lower() == 'done':
        break
    values.append(user_input)
print("你输入的值列表是:", values)
# 请输入一个值(输入'done'结束):1024
# 请输入一个值(输入'done'结束):done
# 你输入的值列表是: ['1024']

# 循环输入直到输入有效选项
# 循环输入,直到用户输入有效选项(例如1、2或3)
while True:
    user_input = input("请选择以下选项(1-3):")
    if user_input in ['1', '2', '3']:
        print(f"你选择了选项{user_input}")
        break
    else:
        print("无效的输入,请重新选择")
# 请选择以下选项(1-3):4
# 无效的输入,请重新选择
# 请选择以下选项(1-3):5
# 无效的输入,请重新选择
# 请选择以下选项(1-3):2
# 你选择了选项2

# 应用5:条件输入
# 根据用户输入执行不同操作
# 询问用户想要执行的操作
user_input = input("你想做什么?(1)打印问候语,(2)计算数字,(3)退出:")
# 根据用户输入执行不同的操作
if user_input == '1':
    print("你好,欢迎来到这个程序!")
elif user_input == '2':
    num1 = float(input("请输入第一个数字:"))
    num2 = float(input("请输入第二个数字:"))
    print("两个数字的和是:", num1 + num2)
elif user_input == '3':
    print("感谢使用,再见!")
else:
    print("无效的输入,请重新选择。")
# 你想做什么?(1)打印问候语,(2)计算数字,(3)退出:1
# 你好,欢迎来到这个程序!

# 根据用户输入判断年龄范围
# 询问用户年龄
age = int(input("请输入你的年龄:"))
# 根据年龄范围执行不同的操作
if age < 0:
    print("年龄不能是负数,请重新输入。")
elif age < 18:
    print("你还是未成年人。")
elif age >= 18 and age < 65:
    print("你是成年人。")
else:
    print("你是老年人。")
# 请输入你的年龄:70
# 你是老年人。

# 根据用户输入进行多条件判断
# 询问用户一些信息
name = input("请输入你的名字:")
grade = input("请输入你的成绩等级(A/B/C/D/F):")
# 根据成绩等级和名字输出不同信息
if grade == 'A':
    print(f"{name},你的成绩很优秀!")
elif grade == 'B':
    print(f"{name},你的成绩良好。")
elif grade == 'C':
    print(f"{name},你的成绩中等。")
elif grade == 'D':
    print(f"{name},你的成绩需要努力。")
elif grade == 'F':
    print(f"{name},很遗憾,你需要重新努力。")
else:
    print("无效的成绩等级输入。")
# 请输入你的名字:Myelsa
# 请输入你的成绩等级(A/B/C/D/F):A
# Myelsa,你的成绩很优秀!

# 根据用户输入选择游戏难度
# 询问用户想要的游戏难度
difficulty = input("请选择游戏难度(easy/medium/hard):")
# 根据难度选择执行不同的游戏逻辑
if difficulty == 'easy':
    print("游戏难度设置为简单模式。")
    # 执行简单模式的游戏逻辑
elif difficulty == 'medium':
    print("游戏难度设置为中等模式。")
    # 执行中等模式的游戏逻辑
elif difficulty == 'hard':
    print("游戏难度设置为困难模式。")
    # 执行困难模式的游戏逻辑
else:
    print("无效的难度选择,游戏将使用默认难度。")
    # 执行默认难度的游戏逻辑
# 请选择游戏难度(easy/medium/hard):easy
# 游戏难度设置为简单模式。

# 应用6:异常处理
# 处理ValueError异常
try:
    user_input = input("请输入一个整数:")
    number = int(user_input)
    print("你输入的整数是:", number)
except ValueError:
    print("对不起,你输入的不是一个有效的整数,请重新输入!")
# 请输入一个整数:myelsa
# 对不起,你输入的不是一个有效的整数,请重新输入!

# 处理ZeroDivisionError异常
try:
    dividend = float(input("请输入被除数:"))
    divisor = float(input("请输入除数(不能为0):"))
    result = dividend / divisor
    print("计算结果是:", result)
except ZeroDivisionError:
    print("错误:除数不能为0,请重新输入!")
except ValueError:
    print("输入的不是有效的数字,请重新输入!")
# 请输入被除数:24
# 请输入除数(不能为0):2
# 计算结果是: 12.0

# 自定义异常处理
class InvalidInputError(Exception):
    pass
def get_positive_integer():
    while True:
        try:
            user_input = input("请输入一个正整数:")
            number = int(user_input)
            if number <= 0:
                raise InvalidInputError("输入的数字必须大于0!")
            return number
        except ValueError:
            print("你输入的不是一个有效的整数,请重新输入!")
        except InvalidInputError as e:
            print(e)
# 使用自定义函数
positive_integer = get_positive_integer()
print("你输入的正整数是:", positive_integer)
# 请输入一个正整数:12
# 你输入的正整数是: 12

# 使用try-except-finally结构
try:
    # 尝试执行可能会抛出异常的代码
    user_input = input("请输入一个文件名:")
    with open(user_input, 'r') as file:
        content = file.read()
        print("文件内容是:", content)
except FileNotFoundError:
    print("文件未找到!请检查文件名是否正确?")
except IOError as e:
    print("输入/输出错误:", e)
finally:
    # 无论是否发生异常,这部分代码都会执行
    print("程序执行完毕!")
# 请输入一个文件名:myelsa
# 文件未找到!请检查文件名是否正确?
# 程序执行完毕!

# 应用7:构建交互式界面
# 用户登录界面
def login():
    users = {"admin": "123", "user": "456"}

    while True:
        username = input("请输入用户名:")
        password = input("请输入密码:")

        if username in users and users[username] == password:
            print("登录成功!")
            return
        else:
            print("用户名或密码错误,请重试!")
# 调用登录函数
login()
# 请输入用户名:admin
# 请输入密码:123
# 登录成功!
1-2、VBA:
略,待后补。
2、推荐阅读:

1、Python-VBA函数之旅-hex()函数

Python算法之旅:Algorithm

Python函数之旅:Functions 

个人主页:神奇夜光杯-CSDN博客 

版权声明:本文为博主作者:神奇夜光杯原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/ygb_1024/article/details/138119447

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2024年5月6日
下一篇 2024年5月6日

相关推荐