python ACM格式 || stdin和input的区别 || acm中常用的函数

疑问

在acm格式里有两种方法读取用户输入:

  • import sys 然后使用 sys.stdin
  • input()
    但隐隐约约感觉这两个方法读到的数据在最后一行有些问题
    导致我在使用stdin时候,需要使用正则表达式:re.split(‘[,\n]’,textline)来把一个以逗号分割的字符串彻底分开

stdin和input的区别

在 Python 中,input()sys.stdin 都用于从用户获取输入,但它们之间有一些重要的区别:

  1. input() 函数

    • input() 函数是内置函数,用于从标准输入(通常是键盘)读取用户输入的一行文本。
    • 它会提示用户输入,并且等待用户输入完成后,返回用户输入的字符串。
    • input() 函数始终返回一个字符串对象。

    示例:

    name = input("Enter your name: ")
    print("Hello, " + name)
    
  2. sys.stdin

    • sys.stdin 是 Python 中的标准输入流对象,它来自于 sys 模块。
    • input() 不同,sys.stdin 不会自动提示用户输入,而是直接从标准输入中读取数据。
    • 通常需要使用 sys.stdin.readline() 方法来读取用户输入的一行文本。
    • sys.stdin.readline() 返回的是一个包含用户输入的字符串的行,包括结尾的换行符 \n,需要根据需要进行处理。

    示例:

    import sys
    name = sys.stdin.readline().strip()  # 使用 strip() 方法去除结尾的换行符
    print("Hello, " + name)
    

主要区别

  • input() 提供了更简单的方式来获取用户输入,因为它自动提示用户输入并返回一个字符串,但它只能从标准输入(通常是键盘)读取。
  • sys.stdin 则更加灵活,可以从任何文件对象中读取输入,而不仅仅是标准输入。但它需要手动处理用户输入以及可能出现的换行符等情况。

常用函数:

  1. map(函数名,迭代对象:一般是数组):
    作用是把后面迭代对象通过前面的函数,转化成另外一个数组
    但是在print(这个返回结果)时需要注意:py3中会返回一个object对象
    如果想得到数组,需要外加一层list()
    map函数可以使匿名函数lambda
    map(lambda x:x**2,[1,2,3,4,5])

  2. try:…except:…
    用于在没有给定组数的时候,except后面经常跟的是break

  3. join(可迭代对象:一般是已经排好序的数组)
    在需要输出用逗号分隔的字符串print(','.join(['a','bb','c']))

  4. strip()用于处理掉字符串开始和结束的空白格

  5. split()用于处理掉字符串中间的空格,第一个参数是你需要指定的分割符,第二个参数可以设定分割次数

牛客的acm格式练习题

牛客acm界面

相关推荐

  1. Pythonsys.stdin.readline()与input()区别

    2024-03-28 00:24:05       24 阅读
  2. C:STDIN_FILENOstdin区别

    2024-03-28 00:24:05       11 阅读
  3. Vue@change、@input@blur区别及@keyup介绍

    2024-03-28 00:24:05       35 阅读
  4. Web常用数据格式

    2024-03-28 00:24:05       14 阅读
  5. 单片机 ARM 区别

    2024-03-28 00:24:05       25 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-28 00:24:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-28 00:24:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-28 00:24:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-28 00:24:05       20 阅读

热门阅读

  1. 【机器学习】如何计算解释模型的SHAP值

    2024-03-28 00:24:05       19 阅读
  2. 华为机试真题练习汇总(101~110)

    2024-03-28 00:24:05       17 阅读
  3. 新建uni-modules插件

    2024-03-28 00:24:05       19 阅读
  4. 前端理论总结(js)——闭包和内存泄漏

    2024-03-28 00:24:05       20 阅读
  5. 关于远程调试应用中的网页鸿蒙

    2024-03-28 00:24:05       18 阅读
  6. 面试算法-118-用队列实现栈

    2024-03-28 00:24:05       20 阅读
  7. [c++] 自写 MyString 类

    2024-03-28 00:24:05       19 阅读
  8. ShardingSphere对国产数据库的支持

    2024-03-28 00:24:05       18 阅读
  9. 《装饰器模式(极简c++)》

    2024-03-28 00:24:05       17 阅读
  10. LCR 001. 两数相除

    2024-03-28 00:24:05       16 阅读
  11. 大话设计模式之简单工厂模式

    2024-03-28 00:24:05       21 阅读