【7.0】Python基础之程序与用户交互

发布时间 2023-11-18 15:21:07作者: Chimengmeng

【一】什么是与用户交互

  • 交互的本质就是输入、输出

  • 用户交互就是人往计算机中input/输入数据,计算机print/输出结果

【二】为什么要与用户交互

  • 为了让计算机能够像人一样与用户沟通交流
  • 过去我们去银行取钱,用户需要把帐号密码告诉柜员
  • 而现在,柜员被ATM机取代
    • ATM机就是一台计算机
    • 所以用户同样需要将帐号密码告诉计算机
    • 于是我们的程序中必须有相应的机制来控制计算机接收用户输入的内容
    • 并且输出结果

【三】如何与用户交互

【1】输入(input)

(1)Python3

  • 在Python3中input功能会等待用户的输入

    • 用户输入一些内容,用户按下回车键后,input 函数会返回用户输入的内容

    • input接受的所有数据类型都是 str 类型

      username = input("请输入你的用户名:>>>")
      password = input('请输入你的密码:>>>')
      
      print(username, type(username))  # input接受的所有数据类型都是str类型
      print(password, type(password))  # input接受的所有数据类型都是str类型
      
    • 然后赋值给等号左边的变量名

username = input('请输入您的用户名:')
# 请输入您的用户名:Dream
# username = "Drea"

password = input('请输入您的密码:')
# 请输入您的密码:521
# password = "521"

(2)Python2

在 Python 2 中,存在两个与用户输入相关的函数:raw_inputinput

[1]raw_input

  • raw_input 用于接收用户输入,并且返回用户输入的字符串。它不会进行任何类型转换,始终返回字符串类型。
# Python 2 中的 raw_input 示例
username = raw_input("请输入用户名:")
print("你输入的用户名是:", username)
  • 在上述示例中,raw_input 函数会提示用户输入用户名,并返回输入的字符串,然后将其赋值给变量 username

[2]input

  • 在 Python 2 中,input 函数的行为与 Python 3 中的 input 函数不同。
  • 在 Python 2 中,input 会将用户输入的内容当作 Python 表达式来处理,并且尝试计算结果。
  • 如果用户输入的是字符串,需要使用引号括起来。
# Python 2 中的 input 示例
# 用户输入:[1,2,3]
l = input('输入什么类型就存成什么类型: ')
print(type(l))  # <type 'list'>
  • 在上述示例中,用户输入的是字符串 "[1,2,3]"input 函数将其作为 Python 表达式处理,并尝试计算结果,因此得到了一个列表类型。

  • 需要注意的是,由于 input 的处理方式,存在一些潜在的安全问题,用户输入的内容可能被当作代码执行,因此在实际使用中要注意防范。

  • 在 Python 3 中,input 函数已经改为只接收字符串,避免了这个问题。

【2】输出(print)

(1)简单字符串

  • print 函数用于向控制台输出信息。你可以使用 print 函数来显示程序的运行结果、提示信息等。
# 输出示例
print("Hello, World!")  # 输出简单的字符串
# Hello, World!

(2)多个变量输出

  • print 函数可以输出多个值,用逗号隔开。输出时,各个值之间默认使用空格分隔
# 多值输出示例
name = "Alice"
age = 25
print("姓名:", name, "年龄:", age)  # 输出姓名和年龄

(3)默认 end 参数

  • print 函数也有一些可选参数,例如 end 参数用于指定输出的结尾字符,默认为换行符"\n"(代表换行)
# end 参数示例
print("Hello", end="")
print(", World!")  # 输出结果为:Hello, World!
  • 可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@