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界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值