python读取键盘输入

python读取键盘输入

一、类型

raw_input()/input() (Python3中为input())返回的结果不包含末尾的换行符,而sys.stdin.readline()返回的结果包含了末尾的换行符\n

法一:

raw_input()

法二:

input()

法三:

sys.stdin()

1. for line in sys.stdin:

复制代码
import sys

sys.stdout.write('根据两点坐标计算直线斜率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))
复制代码

 

2. while True:
      line = sys.stdin.readline()

复制代码
import sys

sys.stdout.write('根据两点坐标计算直线斜率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))
复制代码

 

3. while True:
      line = input()

复制代码
print('根据两点坐标计算直线斜率k,截距b:')
while True:
    line = input()
    if line == '\n': break
    
    x1, y1, x2, y2 = (float(x) for x in line.split())
    k = (y2 - y1) / (x2 - x1)
    b = y1 - k * x1
    print('斜率:{},截距:{}'.format(k, b))
复制代码

 本文后半部分转自罗兵博客园博客,原文链接:http://www.cnblogs.com/hhh5460/p/5473494.html,如需转载请自行联系原作者

二、读取多行数据

1.

import sys
for line in sys.stdin:
        for value in line.split()
                print value

用这段代码的时候,输入一行后就会打印出这一行数据,不能满足我想一次输入多行的要求,

2.

  1. lst = []
  2. print('请输入数据,直接回车结束:')
  3. while True:
  4.     temp = input()
  5.     if temp == '':
  6.         break
  7.     lst.append([int(i) for i in temp.split(' ')])
  8. for i in lst:
  9.     print(i)

例如:

下厨房,求所需材料总数

题目描述

牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。

输入描述:

每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。

输出描述:

输出一行一个数字表示完成所有料理需要多少种不同的材料。
示例1

输入

BUTTER FLOUR
HONEY FLOUR EGG

输出

4

import sys
a=[]
for line in sys.stdin:
    if line.strip() == '':
        break
    a.extend(line.split())
print len(set(a))
set()可以去除数组中的重复元素

你可能感兴趣的:(python,基础)