首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Python-VBA函数之旅-input函数

  • 25-03-03 04:31
  • 3318
  • 8438
blog.csdn.net

目录

一、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博客 
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览60609 人正在系统学习中
遨游码海,我心飞扬
微信名片
注:本文转载自blog.csdn.net的神奇夜光杯的文章"https://myelsa1024.blog.csdn.net/article/details/138119447"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top