欢迎访问宙启技术站
智能推送

Python中获取用户输入的10种方法

发布时间:2023-05-21 04:15:03

在Python中,有多种方法可以获取用户输入的数据。这些方法可以使我们更加灵活地控制程序的流程。下面是Python中获取用户输入的10种方法。

1. input() 函数

input()函数允许用户从键盘输入一个字符串,并将其存储在变量中。例如:

name = input("请输姓名:")

print("你好," + name)

这将要求用户输入其姓名并存储在名为name的变量中。

2. sys.stdin.readline()

sys.stdin.readline()函数允许用户从stdin文件对象中读取一行数据。例如:

import sys

name = sys.stdin.readline()

print("你好," + name)

在这个例子中,用户需要在终端中输入数据,然后按Enter键。输入的数据将被传递给变量name。

3. getpass.getpass()

getpass.getpass()函数与input()函数类似,但它允许用户输入敏感数据(如密码),并在输入时隐藏用户的输入。例如:

import getpass

password = getpass.getpass("请输入你的密码:")

print("你的密码是:" + password)

这将要求用户输入其密码,但不会在终端上显示用户的输入。

4. argparse 模块

argparse模块是Python自带的工具,用于解析命令行参数。它可以用来获取用户在命令行中输入的数据。例如:

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('--name')

args = parser.parse_args()

print("你好," + args.name)

在这个例子中,我们可以将名字作为命令行参数传递给程序,如:

$ python myprogram.py --name Jack

然后程序会使用argparse模块解析出我们输入的命令行参数,并存储在变量args中。

5. Tkinter 模块

Tkinter是Python标准库中的GUI(图形用户界面)工具包。它提供了许多用户交互包括文本输入框。例如:

from tkinter import *

root = Tk()

label1 = Label(root, text="请输入您的姓名:")

entry1 = Entry(root)

label1.pack()

entry1.pack()

root.mainloop()

name = entry1.get()

print("你好," + name)

在这个例子中,我们使用Tkinter建立了一个简单的GUI,用于接收用户的真实姓名。变量name将包含用户在文本框中输入的值。

6. pysimplegui 模块

pysimplegui模块是Python的GUI库,它的优点是易于使用而且功能强大。它提供了许多窗口小部件(如文本输入框),用于接收用户输入。例如:

import PySimpleGUI as sg

layout = [[sg.Text('请输入您的姓名:')],[sg.InputText()],[sg.OK(), sg.Cancel()]]

window = sg.Window('Hello World', layout)

event, values = window.read()

window.close()

name = values[0]

print("你好," + name)

在这个例子中,我们使用pysimplegui建立了一个GUI,用于接收用户的真实姓名。变量name将包含用户在文本框中输入的值。

7. curses 模块

curses模块是Python的控制台GUI库,它允许开发者在终端中创建图形界面。它提供了文本输入框,允许用户在终端中输入数据。例如:

import curses

screen = curses.initscr()

curses.echo()

screen.addstr(0, 0, "请输入您的姓名:")

name = screen.getstr(1, 0)

screen.addstr(2, 0, "你好," + name)

screen.refresh()

screen.getch()

curses.endwin()

在这个例子中,我们使用curses模块建立了一个文本输入框,用于接收用户的真实姓名。变量name将包含用户在文本框中输入的值。

8. wxPython 模块

wxPython是Python中功能强大的GUI库,提供了一个用户友好的图形界面。它包括文本输入框,可以让用户通过它输入数据。例如:

import wx

app = wx.App()

frame = wx.Frame(None, -1, '输入', size=(300, 200))

panel = wx.Panel(frame, -1)

statictext1 = wx.StaticText(panel, -1, '请输入您的姓名:', pos=(50, 50))

textctrl1 = wx.TextCtrl(panel, -1, '', pos=(150, 50), size=(100, -1))

ok_button = wx.Button(panel, wx.ID_OK, 'OK', pos=(75, 100))

cancel_button = wx.Button(panel, wx.ID_CANCEL, 'Cancel', pos=(175, 100))

frame.Show()

result = frame.ShowModal()

if result == wx.ID_OK:

    name = textctrl1.GetValue()

    print("你好," + name)

frame.Destroy()

在这个例子中,我们使用wxPython库建立了一个文本输入框,用于接收用户的真实姓名。变量name将包含用户在文本框中输入的值。

9. PyQT 模块

PyQT是Python中常用的GUI库,提供了图形界面设计和实现的工具和框架。它包括文本输入框,可以让用户通过它输入数据。例如:

from PyQt5.QtWidgets import *

app = QApplication([])

win = QDialog()

layout = QVBoxLayout()

label = QLabel("请输入您的姓名:")

name_box = QLineEdit()

button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel,

                              orientation=Qt.Horizontal)

layout.addWidget(label)

layout.addWidget(name_box)

layout.addWidget(button_box)

win.setLayout(layout)

button_box.accepted.connect(win.accept)

button_box.rejected.connect(win.reject)

result = win.exec_()

if result == QDialog.Accepted:

    name = name_box.text()

    print("你好," + name)

在这个例子中,我们使用PyQT库建立了一个文本输入框,用于接收用户的真实姓名。变量name将包含用户在文本框中输入的值。

10. PyGame 模块

PyGame是一个Python库,用于开发电子游戏。它包括输入设备管理器,用于获取玩家在游戏中的输入。例如:

import pygame

from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((640, 480))

name_font = pygame.font.SysFont(None, 32)

name_text = name_font.render("请输入您的姓名:", True, (255, 255, 255))

name_rect = name_text.get_rect(center=(320, 240))

pygame.draw.rect(screen, (0, 0, 0), name_rect, 2)

clock = pygame.time.Clock()

name_input = ""

while True:

    for event in pygame.event.get():

        if event.type == QUIT:

            pygame.quit()

            sys.exit()

        elif event.type == KEYDOWN:

            if event.key in (K_RETURN, K_KP_ENTER):

                print("你好," + name_input)

                pygame.quit()

                sys.exit()

            elif event.key == K_BACKSPACE:

                name_input = name_input[:-1]

            elif event.key == K_ESCAPE:

                pygame.quit()

                sys.exit()

            else:

                name_input += event.unicode

    name_input_text = name_font.render(name_input, True, (255, 255, 255))

    screen.blit(name_text, name_rect.move(0, -50))

    screen.blit(name_input_text, name_rect.move(0, 50))

    pygame.display.update()

    clock.tick(60)

在这个例子中,我们使用PyGame建立了一个文本输入框,用于接收用户的真实姓名。变量name_input将包含用户在文本框中输入的值。

这就是Python中获取用户输入的10种方法。无论您使用什么方法,确保您正确地处理用户的输入,并避免安全问题。