Python读取键盘输入

本文深入探讨了Python中读取键盘输入的各种方法,包括使用raw_input(), input(), sys.stdin.readline()等函数的区别。并通过实例展示了如何读取单行或多行输入,并进行数据处理,如计算直线斜率和截距,以及统计不同材料种类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python读取键盘输入

  1. 读取单行输入
    raw_input()/input()返回的结果中不包含末尾的换行符
    sys.stdin.readline()返回的结果包含了末尾的换行符\n
  2. 读取多行输入
    编程案例:
    题目描述:牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
    输入描述:每个输入包含1个测试用例。每个测试用例的第i行,表示完成第i件料理需要哪些材料,每个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过50行,每一行不超过50个字符
    输出描述:输出一行一个数字表示完成所有料理需要多少种不同的材料。
    示例
    输入:
    BUTTER FLOUR
    HONEY FLOUR EGG
    输出
    4
# -*- coding: utf-8 -*-
# @Time    : 2019/11/8 15:54
# @Author  : Xinzhe
# @File    : KeyBoardInput.py
# @Software: PyCharm

# 1.读取单行数据
# raw_input()/input()返回的结果中不包含末尾的换行符
# sys.stdin.readline()返回的结果包含了末尾的换行符\n

import sys

def Sysstdin():
    sys.stdout.write("1.根据两点坐标计算直线斜率k,截距b:\n")
    for line in sys.stdin:
        if line == '\n':
            break
        x1, y1, x2, y2 = (float(x) for x in line.split())
        k = (y2 - y1) / (x2 - x1)
        b = y1 - k * x1
        sys.stdout.write('斜率:{},截距:{}\n'.format(k, b))


def Sysreadline():
    sys.stdout.write("2.根据两点坐标计算直线斜率k,截距b:\n")
    while True:
        line = sys.stdin.readline()
        if line == '\n':
            break
        x1, y1, x2, y2 = (float(x) for x in line.split())
        k = (y2 - y1) / (x2 - x1)
        b = y1 - k * x1
        sys.stdout.write('斜率:{},截距:{}\n'.format(k, b))


def Sysinput():
    print('3.根据两点坐标计算直线斜率k,截距b:')
    line = input()
    x1, y1, x2, y2 = (float(x) for x in line.split())
    k = (y2 - y1) / (x2 - x1)
    b = y1 - k * x1
    sys.stdout.write('斜率:{},截距:{}\n'.format(k, b))


# 题目描述:牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
# 输入描述:每个输入包含1个测试用例。每个测试用例的第i行,表示完成第i件料理需要哪些材料,每个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过50行,每一行不超过50个字符
# 输出描述:输出一行一个数字表示完成所有料理需要多少种不同的材料。
# 示例
# 输入:
# BUTTER FLOUR
# HONEY FLOUR EGG
# 输出
# 4
def Material():
    print('牛牛下厨房,计算所需材料总数')
    a = []
    for line in sys.stdin:
        if line.strip() == '':
            break
        a.extend(line.split())
    print(len(set(a)))


if __name__ == '__main__':
    print('读取单行数据:')
    Sysstdin()
    Sysreadline()
    Sysinput()
    print('读取多行数据:')
    Material()

Tips

x = int(input()) #读取单个数据
m, n = map(int, input().split()) # 读取两个数据
nums = list(map(int, input().split())) #读取多个数据
print(x)
print(m, n)
print(nums)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值