当前位置:   article > 正文

Python-VBA函数之旅-input函数

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. # 1.函数:input
  2. # 2.功能:可以提示并接收用户的输入内容,将所有的输入内容按照字符串进行处理,并返回一个字符串
  3. # 3.语法:input([prompt])
  4. # 4.参数:prompt,可选参数,表示提示信息
  5. # 5.返回值:返回一个字符串
  6. # 6.说明:
  7. # 7.示例:
  8. # 用dir函数获取input函数的相关信息
  9. print(dir(input))
  10. # ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
  11. # '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__',
  12. # '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__',
  13. # '__str__', '__subclasshook__', '__text_signature__']
  14. # 用help函数获取input函数的相关信息
  15. help(input)
  16. # 应用1:动态交互
  17. # 简单的用户输入
  18. # 提示用户输入名字
  19. name = input("请输入你的名字:")
  20. print(f"你好,{name}!")
  21. # 请输入你的名字:Myelsa
  22. # 你好,Myelsa!
  23. # 选择菜单
  24. # 选择菜单
  25. print("请选择以下选项:")
  26. print("1. 选项一")
  27. print("2. 选项二")
  28. print("3. 退出")
  29. while True:
  30. choice = input("请输入你的选择(1-3):")
  31. if choice == '1':
  32. print("你选择了选项一")
  33. elif choice == '2':
  34. print("你选择了选项二")
  35. elif choice == '3':
  36. print("退出程序")
  37. break
  38. else:
  39. print("无效的输入,请重新选择")
  40. # 请选择以下选项:
  41. # 1. 选项一
  42. # 2. 选项二
  43. # 3. 退出
  44. # 请输入你的选择(1-3):1
  45. # 你选择了选项一
  46. # 请输入你的选择(1-3):4
  47. # 无效的输入,请重新选择
  48. # 获取用户年龄并进行判断
  49. age = input("请输入你的年龄:")
  50. try:
  51. age = int(age)
  52. if age >= 18:
  53. print("你已经成年了")
  54. else:
  55. print("你还未成年")
  56. except ValueError:
  57. print("无效的输入,请输入一个整数")
  58. # 请输入你的年龄:18
  59. # 你已经成年了
  60. # 动态计算
  61. num1 = input("请输入第一个数字:")
  62. num2 = input("请输入第二个数字:")
  63. try:
  64. num1 = float(num1)
  65. num2 = float(num2)
  66. result = num1 + num2
  67. print(f"{num1} + {num2} = {result}")
  68. except ValueError:
  69. print("无效的输入,请输入数字")
  70. # 请输入第一个数字:10
  71. # 请输入第二个数字:24
  72. # 10.0 + 24.0 = 34.0
  73. # 应用2:用户身份验证
  74. # 假设我们有一个预设的用户名和密码
  75. correct_username = "myelsa"
  76. correct_password = "123"
  77. # 获取用户输入的用户名和密码
  78. username = input("请输入用户名:")
  79. password = input("请输入密码:")
  80. # 检查用户名和密码是否正确
  81. if username == correct_username and password == correct_password:
  82. print("身份验证成功!欢迎,", username)
  83. else:
  84. print("身份验证失败!请检查您的用户名和密码是否正确。")
  85. # 请输入用户名:myelsa
  86. # 请输入密码:123
  87. # 身份验证成功!欢迎, myelsa
  88. # 应用3:复杂数据输入
  89. # 输入列表
  90. # 输入列表,每个元素通过空格分隔
  91. input_str = input("请输入一个由空格分隔的元素列表:")
  92. # 使用split方法将字符串转换为列表
  93. input_list = input_str.split()
  94. print("你输入的列表是:", input_list)
  95. # 请输入一个由空格分隔的元素列表:3,5,6,8,10,11,24
  96. # 你输入的列表是: ['3,5,6,8,10,11,24']
  97. # 输入字典
  98. # 输入字典,每个键值对通过冒号分隔,键值对之间通过逗号分隔
  99. input_str = input("请输入一个由冒号分隔键和值,通过逗号分隔的字典:")
  100. # 去除首尾空格,并按逗号分割成键值对
  101. pairs = input_str.strip().split(',')
  102. # 创建字典
  103. input_dict = {}
  104. for pair in pairs:
  105. key, value = pair.split(':')
  106. input_dict[key.strip()] = value.strip()
  107. print("你输入的字典是:", input_dict)
  108. # 请输入一个由冒号分隔键和值,通过逗号分隔的字典:Myelsa:18,Jimmy:15,Bruce:6
  109. # 你输入的字典是: {'yelsa': '18', 'Jimmy': '15', 'Bruce': '6'}
  110. # 输入自定义对象的属性
  111. class Person:
  112. def __init__(self, name, age):
  113. self.name = name
  114. self.age = age
  115. def __str__(self):
  116. return f"Person(name={self.name}, age={self.age})"
  117. # 输入姓名和年龄来创建Person对象
  118. name = input("请输入姓名:")
  119. age = input("请输入年龄:")
  120. try:
  121. age = int(age) # 尝试将年龄转换为整数
  122. person = Person(name, age)
  123. print("你创建的Person对象是:", person)
  124. except ValueError:
  125. print("年龄必须是整数,请重新输入。")
  126. # 请输入姓名:Myelsa
  127. # 请输入年龄:18
  128. # 你创建的Person对象是: Person(name=Myelsa, age=18)
  129. # 输入嵌套数据(如列表的列表)
  130. # 输入嵌套列表,每个内部列表由空格分隔,外部列表由换行符分隔
  131. input_str = ""
  132. while True:
  133. line = input("请输入一个由空格分隔的元素列表(或输入'done'结束):")
  134. if line.lower() == 'done':
  135. break
  136. input_str += line + "\n"
  137. # 使用eval函数(注意:eval有安全风险,仅用于演示目的)
  138. nested_list = eval(input_str)
  139. print("你输入的嵌套列表是:", nested_list)
  140. # 应用4:循环输入
  141. # 循环输入直到输入特定值
  142. # 循环输入,直到用户输入'quit'为止
  143. while True:
  144. user_input = input("请输入一些内容(输入'quit'退出):")
  145. if user_input.lower() == 'quit':
  146. break
  147. print("你输入的是:", user_input)
  148. # 请输入一些内容(输入'quit'退出):myelsa
  149. # 你输入的是: myelsa
  150. # 请输入一些内容(输入'quit'退出):quit
  151. # 循环输入并累加数字
  152. # 循环输入数字,并累加,直到输入非数字为止
  153. total = 0
  154. while True:
  155. try:
  156. number = float(input("请输入一个数字(输入非数字退出):"))
  157. total += number
  158. print("当前累加和是:", total)
  159. except ValueError:
  160. print("输入的不是有效的数字,退出累加。")
  161. break
  162. # 请输入一个数字(输入非数字退出):10
  163. # 当前累加和是: 10.0
  164. # 请输入一个数字(输入非数字退出):24
  165. # 当前累加和是: 34.0
  166. # 请输入一个数字(输入非数字退出):5
  167. # 当前累加和是: 39.0
  168. # 请输入一个数字(输入非数字退出):11
  169. # 当前累加和是: 50.0
  170. # 请输入一个数字(输入非数字退出):myelsa
  171. # 输入的不是有效的数字,退出累加。
  172. # 循环输入多个值并存入列表
  173. # 循环输入多个值,并存入列表,直到输入'done'为止
  174. values = []
  175. while True:
  176. user_input = input("请输入一个值(输入'done'结束):")
  177. if user_input.lower() == 'done':
  178. break
  179. values.append(user_input)
  180. print("你输入的值列表是:", values)
  181. # 请输入一个值(输入'done'结束):1024
  182. # 请输入一个值(输入'done'结束):done
  183. # 你输入的值列表是: ['1024']
  184. # 循环输入直到输入有效选项
  185. # 循环输入,直到用户输入有效选项(例如1、2或3)
  186. while True:
  187. user_input = input("请选择以下选项(1-3):")
  188. if user_input in ['1', '2', '3']:
  189. print(f"你选择了选项{user_input}")
  190. break
  191. else:
  192. print("无效的输入,请重新选择")
  193. # 请选择以下选项(1-3):4
  194. # 无效的输入,请重新选择
  195. # 请选择以下选项(1-3):5
  196. # 无效的输入,请重新选择
  197. # 请选择以下选项(1-3):2
  198. # 你选择了选项2
  199. # 应用5:条件输入
  200. # 根据用户输入执行不同操作
  201. # 询问用户想要执行的操作
  202. user_input = input("你想做什么?(1)打印问候语,(2)计算数字,(3)退出:")
  203. # 根据用户输入执行不同的操作
  204. if user_input == '1':
  205. print("你好,欢迎来到这个程序!")
  206. elif user_input == '2':
  207. num1 = float(input("请输入第一个数字:"))
  208. num2 = float(input("请输入第二个数字:"))
  209. print("两个数字的和是:", num1 + num2)
  210. elif user_input == '3':
  211. print("感谢使用,再见!")
  212. else:
  213. print("无效的输入,请重新选择。")
  214. # 你想做什么?(1)打印问候语,(2)计算数字,(3)退出:1
  215. # 你好,欢迎来到这个程序!
  216. # 根据用户输入判断年龄范围
  217. # 询问用户年龄
  218. age = int(input("请输入你的年龄:"))
  219. # 根据年龄范围执行不同的操作
  220. if age < 0:
  221. print("年龄不能是负数,请重新输入。")
  222. elif age < 18:
  223. print("你还是未成年人。")
  224. elif age >= 18 and age < 65:
  225. print("你是成年人。")
  226. else:
  227. print("你是老年人。")
  228. # 请输入你的年龄:70
  229. # 你是老年人。
  230. # 根据用户输入进行多条件判断
  231. # 询问用户一些信息
  232. name = input("请输入你的名字:")
  233. grade = input("请输入你的成绩等级(A/B/C/D/F):")
  234. # 根据成绩等级和名字输出不同信息
  235. if grade == 'A':
  236. print(f"{name},你的成绩很优秀!")
  237. elif grade == 'B':
  238. print(f"{name},你的成绩良好。")
  239. elif grade == 'C':
  240. print(f"{name},你的成绩中等。")
  241. elif grade == 'D':
  242. print(f"{name},你的成绩需要努力。")
  243. elif grade == 'F':
  244. print(f"{name},很遗憾,你需要重新努力。")
  245. else:
  246. print("无效的成绩等级输入。")
  247. # 请输入你的名字:Myelsa
  248. # 请输入你的成绩等级(A/B/C/D/F):A
  249. # Myelsa,你的成绩很优秀!
  250. # 根据用户输入选择游戏难度
  251. # 询问用户想要的游戏难度
  252. difficulty = input("请选择游戏难度(easy/medium/hard):")
  253. # 根据难度选择执行不同的游戏逻辑
  254. if difficulty == 'easy':
  255. print("游戏难度设置为简单模式。")
  256. # 执行简单模式的游戏逻辑
  257. elif difficulty == 'medium':
  258. print("游戏难度设置为中等模式。")
  259. # 执行中等模式的游戏逻辑
  260. elif difficulty == 'hard':
  261. print("游戏难度设置为困难模式。")
  262. # 执行困难模式的游戏逻辑
  263. else:
  264. print("无效的难度选择,游戏将使用默认难度。")
  265. # 执行默认难度的游戏逻辑
  266. # 请选择游戏难度(easy/medium/hard):easy
  267. # 游戏难度设置为简单模式。
  268. # 应用6:异常处理
  269. # 处理ValueError异常
  270. try:
  271. user_input = input("请输入一个整数:")
  272. number = int(user_input)
  273. print("你输入的整数是:", number)
  274. except ValueError:
  275. print("对不起,你输入的不是一个有效的整数,请重新输入!")
  276. # 请输入一个整数:myelsa
  277. # 对不起,你输入的不是一个有效的整数,请重新输入!
  278. # 处理ZeroDivisionError异常
  279. try:
  280. dividend = float(input("请输入被除数:"))
  281. divisor = float(input("请输入除数(不能为0):"))
  282. result = dividend / divisor
  283. print("计算结果是:", result)
  284. except ZeroDivisionError:
  285. print("错误:除数不能为0,请重新输入!")
  286. except ValueError:
  287. print("输入的不是有效的数字,请重新输入!")
  288. # 请输入被除数:24
  289. # 请输入除数(不能为0):2
  290. # 计算结果是: 12.0
  291. # 自定义异常处理
  292. class InvalidInputError(Exception):
  293. pass
  294. def get_positive_integer():
  295. while True:
  296. try:
  297. user_input = input("请输入一个正整数:")
  298. number = int(user_input)
  299. if number <= 0:
  300. raise InvalidInputError("输入的数字必须大于0!")
  301. return number
  302. except ValueError:
  303. print("你输入的不是一个有效的整数,请重新输入!")
  304. except InvalidInputError as e:
  305. print(e)
  306. # 使用自定义函数
  307. positive_integer = get_positive_integer()
  308. print("你输入的正整数是:", positive_integer)
  309. # 请输入一个正整数:12
  310. # 你输入的正整数是: 12
  311. # 使用try-except-finally结构
  312. try:
  313. # 尝试执行可能会抛出异常的代码
  314. user_input = input("请输入一个文件名:")
  315. with open(user_input, 'r') as file:
  316. content = file.read()
  317. print("文件内容是:", content)
  318. except FileNotFoundError:
  319. print("文件未找到!请检查文件名是否正确?")
  320. except IOError as e:
  321. print("输入/输出错误:", e)
  322. finally:
  323. # 无论是否发生异常,这部分代码都会执行
  324. print("程序执行完毕!")
  325. # 请输入一个文件名:myelsa
  326. # 文件未找到!请检查文件名是否正确?
  327. # 程序执行完毕!
  328. # 应用7:构建交互式界面
  329. # 用户登录界面
  330. def login():
  331. users = {"admin": "123", "user": "456"}
  332. while True:
  333. username = input("请输入用户名:")
  334. password = input("请输入密码:")
  335. if username in users and users[username] == password:
  336. print("登录成功!")
  337. return
  338. else:
  339. print("用户名或密码错误,请重试!")
  340. # 调用登录函数
  341. login()
  342. # 请输入用户名:admin
  343. # 请输入密码:123
  344. # 登录成功!
1-2、VBA
略,待后补。
2、推荐阅读:

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

Python算法之旅:Algorithm

Python函数之旅:Functions 

个人主页:神奇夜光杯-CSDN博客 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/551299
推荐阅读
相关标签
  

闽ICP备14008679号