Python12-Python中input()高级玩法

在python中使用input()高级玩法提高输入速度

需求:用户给定一个数字N,以及N个数字,计算N个数字的和,如给定数字5,给定5个数字分别为1,2,3,4,5,则计算1+2+3+4+5,返回15

基础玩法:

>>> sum=0
>>> for i in arr:
    sum=sum+i

>>> sum
15

一级玩法:用内置的stdin和stdout加快读入写出速度。

sys.stdin是一个文件对象,用于从文件中读取输入。

stdout.write(“Dn”)的速度比print(“D”)速度快

>>>#加载stdin,stdout模块
>>> from sys import stdin,stdout
>>> #定义主函数
>>> def main():
    #从标准输入中读取N
    n=stdin.readline()
    #从标准输入中获取N个数字
    arr=[int(x) for x in stdin.readline().split()]
    sum=0
    #计算N个数字的和
    for i in arr:
        sum=sum+i
    #写出计算结果
    stdout.write(str(sum))

>>> 
#执行主函数
>>> if __name__=="__main__":
    main()

5
1 2 3 4 5
15
>>>

利用标准输入输出可以提高速度,但代码过于复杂,主函数不能重复使用。

二级玩法:提前自定义好不同的输入函数,使用时调用即可

自定义整数输入函数get_ints()

>>>#注意此处的map(int,xxx)中的int指定了数据类型,如果是整数型则为int,字符串则为str
>>> def get_ints():return map(int,sys.stdin.readline().strip().split())
#strip()用于移除字符串头和尾的空格
>>> a,b,c=get_ints()
1 2 3
>>> a
1
>>> b
2
>>> c
3
>>> 

自定义字符型输入函数get_strings()

>>> def get_strings():return map(str,sys.stdin.readline().strip().split())

>>> a,b,c=get_strings()
lemon loser yellow
>>> a
'lemon'
>>> b
'loser'
>>> c
'yellow'
>>> 


原文始发于微信公众号(BioInfo):Python12-Python中input()高级玩法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/238200.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!