我想自己在网站上发文章 怎样做,wordpress站点安装,北京网站建设培训学校,岭南地区网站建设自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501
语法参考
sys.stdin是一个标准化输入对象#xff0c;可以连续输入或读入文件所有内容#xff0c;不结束#xff0c;不能直接使用。输入完成后1001.2014.3001.5501
语法参考
sys.stdin是一个标准化输入对象可以连续输入或读入文件所有内容不结束不能直接使用。输入完成后再对输入数据进行处理这是sys.stdin的强大之处。sys.stdin.readline()方法和sys.stdin.readlines()方法是经常用到的方法sys.stdin.readline()方法输入一行输完成后自动添加’\n’。sys.stdin.readlines()可以连续输入数据此时可以将输入的数据作为一个整体进行使用。sys.stdin.readline()的基本用法如下
sys.stdin.readline()
使用sys.stdin.readline()与input()方法都可以实现标准化输入但两者有以下区别
l sys.stdin.readline()方法不能填写提示输入信息的说明文字但input()方法在括号内可以直接填写输入信息相关的说明文字如input(请输入您的名字)。
l sys.stdin.readline()方法会在输入新后加“\n”换行符而input()方法在输入完成后不会添加任何内容。要想取消sys.stdin.readline()方法添加的换行符“\n”可以使用strip(\n) 去除换行符。
下面代码获取用户输入内容的长度可以比较一下sys.stdin.readline()和input()输入内容的区别。代码如下
import sys
line1 sys.stdin.readline() # 包含换行符\n
line2 sys.stdin.readline().strip(\n) # 去掉换行符\n
line3 input() # 不包含换行符\n
print(len(line1), len(line2), len(line3))
输出结果如下 要输入多行数据使用sys.stdin.readlines()方法是最有效的该方法可以连续输入多行输入完成时需要回车到空行然后按ctrlD输出结果。应用参见锦囊2。简单实现多行输入的代码如下
import sys
message sys.stdin.readlines()
print(message)
用户连续输入多行信息如图1所示输入完成后回车到空行然后按ctrlD输出结果如图2所示 图1 输入多行数据 图2 输出显示 快用锦囊
锦囊1常规输入相关内容
sys.stdin.readline()方法不能添加输入提示说明文字如果要添加提示说明文字需要使用print()方法进行输入信息提示代码如下
import sys
print(请输入您的名字: )
name sys.stdin.readline()
print(您输入的名字为: , name)
程序运行结果如下 锦囊2将输入作为整体进行处理
在批量输入数据的时候经常需要输完数据后在对数据做统一处理如对数据统一编号、格式处理等sys.stdin.readlines可以直接将输入的数据作为整体输入完成后再做数据处理如将用户输入的姓名前统一加上3位数字编号输入完成时一定要回车然后按“ctrl D”输出程序运行结果。程序代码如下
import sys
index0 # 初始化编号
for line in sys.stdin.readlines(): # 按行读取输入的数据 line line.strip() # 去掉空格和换行符 indexindex1 # 编号递进加1 if line: # 如果行输入不为空 txtstr(index).zfill(3) line # 将输入的数据前加上3位编号 print (txt)
运行程序输入数据如图3所示结束输入时需要先回车到空行然后按“ctrl D”输出程序运行结果如图4所示。 锦囊3根据两点坐标计算直线的斜率
在勘探、地理探测工作中有时需要根据输入空间的位置计算两点x1,y1(x2,y2)形成直线的斜率斜率的计算公式为(y2 - y1) / (x2 - x1)下面编写一个程序根据用户输入的两点坐标计算直线斜率k。代码如下
import sys print(请输入两点的4个坐标值形式为x1 y1 x2 y2,用空格间隔)while True: line sys.stdin.readline() if line \n: break x1, y1, x2, y2 (float(x) for x in line.split()) k abs(y2 - y1) / abs(x2 - x1) print(两点坐标的斜率为,format(k,.2f))
运行程序输出结果如图5所示。 图5 两点坐标斜率
也可以直接使用sys.stdin对象输入数据然后循环读取sys.stdin对象的数据。下面使用sys.stdin对象根据两点坐标计算直线的斜率代码如下
import sys
print(请输入两点的4个坐标值形式为x1 y1 x2 y2,用空格间隔)
for line in sys.stdin: if line \n: break x1, y1, x2, y2 (float(x) for x in line.split()) k abs(y2 - y1) / abs(x2 - x1) print( format(k,.2f))
锦囊4利用sys.stdin读取文件信息
sys.stdin是一个普通文件对象除了从标准输入读取内容以外也可以使用sys.stdin调用读取文件信息。如读取文件”gjqh.txt”的所有国家区号然后调用readlines函数将前3位为“* 8”的区号输出出来实现代码如下
import sys fileNamegjqh.txt def readfile(file,ord): # 定义查询电话区号的函数readfile with open(file) as txt: # 将国际区号信息文件赋值给变量txt sys.stdin txt # 将变量txt的数据赋值给sys.stdin对象 for line in sys.stdin.readlines(): # 按行读取sys.stdin对象的数据 lineline.strip() # 去除空格 if line [0:3]ord: # 按每行数据的前3个字符查询 print(line) # 输出查询结果 readfile(fileName,* 8) # 调用readfile()查询国际区号前三个字符是 * 8的国家或地区
运行程序输出效果如图6所示。 图6 读取文件