1. Python的输入是字符串,所以要自己转类型
  2. strip去掉左右两端的空白符,返回str
  3. slipt把字符串按空白符拆开,返回[str]
  4. map把list里面的值映射到指定类型,返回[type]
  5. EOF用抓异常
  6. print后面加逗号就不会换行,否则反之,

1.例子

1.1 简单demo

题目:对10个正整数进行从小到大排序

a_1 = input() # 读取第二行
b_1 = [int(n) for n in a_1.split(' ')] # 切割第一行
b_1.sort()
for i in b_1 :
print(i) # 输出
Python代码简短,也更为人性化,让人摆脱繁琐的语言细节,平均代码量为C 的一半
极其方便的字符串,列表操作
Python具有函数式编程的特性
动态,交互式语言,带来DEBUG的便携 缺点也十分明显
损失了大量的时间和内存性能
因此,复杂的题可能会引起时间或内存超限
所以Python适合完成一些对性能要求不高的题

1.2 输入两行,不同的数

在新的一年,牛牛想跳得更高。牛牛本身可以跳高h米。同时牛牛有n颗跳高弹,使用第颗跳高弹可以使牛牛跳高高度增加a;米,且跳高弹的效果是可以叠加的,也就是说如果牛牛使用多颗跳高弹,那么他的跳高高度将会增加这些跳高弹单个效果的和。
每颗跳高弹只能使用一次。
请问牛牛最少需要使用多少个跳高弹,才能让牛牛的高度至少是u米高呢?数据保证答案存在。

输入:

3 2 5

1 3 2

输出:

1

只需要使用第二颗跳高弹就可以达到5米

输入:

4 2 10

1 2 3 4

输出:

3

输入:
4 2 9
1 2 3 4 a_1=input() #读取第一行
a_2=input() #读取第二行
b_1=[int(n) for n in a_1.split()] #切割第一行
b_2=[int(n) for n in a_2.split()]
# 后面就是正常了,b_1[1]=10, b_1[2]=9
print(b_2)
# ACM模式的代码
a_1 = input()
a_2 = input()
b_1 = [int(n) for n in a_1.split()]
b_2 = [int(n) for n in a_2.split()]
b_2 = sorted(b_2,reverse=True) #reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
target = b_1[2] - b_1[1]
count = 0
sums = 0
for i in b_2:
if sums<target:
sums+=i
count+=1
else:
break
print(count)

2.常见输入格式要求

2.1有多组输入数据,但没有具体的告诉你有多少组,只是让你对应每组输入,应该怎样输出?

多样例输入一组整数,每组数据占一行,每组数据中有两个数,要求输出两个数之和。每个结果占一行。

while True:
try:
a,b=map(int,input().strip().split())
print(a+b)
except EOFError:
break

2.2.第一行为一个整数,告诉你有几组数据,剩下的行是每组的数据

tcase=int(input().strip())
for case in range(tcase):
a,b=map(int,input().strip().split())
print(a+b)

2.3 多组数据,并告知何时结束输入,例如(0 0)

while True:
a,b=map(int,input().strip().split())
if a==0 and b==0:
break
print(a+b)

2.4.多组数据,每一行第一个数字代表这一组共有几个数据。当行中第一个数字为0时结束。

while True:
data=list(map(int,input().strip().split()))
n,array=data[0],data[1:]
if n==0:
break
print(sum(array))

2.5.第一行的整数表示一共几组数据,剩下的行每一行第一个数字代表这一组共有几个数据。

tcase=int(input().strip())
for case in range(tcase):
data=list(map(int,input().strip().split()))
n,array=data[0],data[1:]
print(sum(array))

2.6.多组数据,但是不知道多少组。每一行第一个数字代表这一组共有几个数据。

while True:
try:
data=list(map(int,input().strip().split()))
n,array=data[0],data[1:]
print(sum(array))
except EOFError:
break

2.7多组数据,但是不知道有多少组,每一组的数据个数也不一样。

while True:
try:
data=list(map(int,input().strip().split()))
print(sum(data))
except EOFError:
break

2.8*.输入有两行,第一行n 。第二行是n个空格隔开的字符串

n=int(input())
words=[x for x in input().strip().split()]
words.sort() #list.sort( key=None, reverse=False)
#reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
for word in words:
print(word,end=' ')
print()

2.9 多个组,每个测试组是一行,字符串通过空格隔开。

while True:
try:
words=[x for x in input().strip().split()]
words.sort()
for word in words:
print(word,end=' ')
print()
except EOFError:
break

2.10.多个组,每个测试组是一行,字符串通过空格隔开。输出:每个字符串间用','隔开,无结尾空格。

while True:
try:
words=[x for x in input().strip().split(',')]
words.sort()
for word in words[:-1]:
print(word,end=',')
print(words[-1])
except EOFError:
break

3.python在acm中的一些知识

1.输入

a = input() #默认是字符
a, b, c = input()
a, b, c = map(int, input().split()) #在一行输入多个整型数
a, b, c = map(int, raw_input().split()) # python 2 中的输入
1
2
3
4
2.从句,循环 if i >= 0: else :
for i in range(3): #注意冒号,相当于 i=0,i=1,i=2
for i in range(1,3): #i=1,i=2
while i >= 0:
1
2
3
4
5
6
3.运算符 and or not #没有 && || !,注意一下区别
/ #数学上的除
// #整除
1
2
3
4.注释 # 单行注释 pycharm中的快捷键 ctrl + /
''' 注释中间的部分 '''
1
2
5.列表(数组) list = [] #定义
list.append(a) #在数组的末尾添加元素a
list.insert(i,a) #i为在哪一个位置插入a
list.extend([]) # 把某个列表插到list中,参数是一个列表
list.index(a) #在列表中搜索元素a,返回其位置
list.index(a,0,5) #在0,5搜索
list.remove(a) #删除第一个次出现的a
len(list) #列表长度
del list #把list在内存中清除
del list[1] #把list[1]删除
list[1:3] #只是拷贝 list[1],list[2] (3-1=2只有两个元素)
list1 = list[:] #列表拷贝
list2 = list #只是相等,list变,list2也变,只是指定另一个名字罢了
#列表之间的比较 默认从[0]开始
list = list1 + list2 # 合并列表
list * 3
# 列表判断元素
a in list
a not in list
list.count(a) #a在list中出现的次数
list.reserve() #翻转
list.sort()
list.sort(reserve = true) #从大到小 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
6.格式化输出 print('%d %d %d'%(a, b, c))//这个很坑呀,(在一个括号内进行多个格式化输出)

python3 ACM模式的输入输出例子教学的更多相关文章

  1. ACM模式细节

    牛客网的ACM模式需要自己写输入输出,在这里简单记录一下: 基本答题框架: import java.util.*; public class Main{ public static void main ...

  2. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

  3. 面试 | Java 算法的 ACM 模式

    (Java 算法的 ACM 模式) 前言 经常在 LeetCode 上用核心代码模式刷题的小伙伴突然用 ACM 模式可能会适应不过来,把时间花在输入输出上很浪费时间,因此本篇笔记对 Java 算法的 ...

  4. ACM录 之 输入输出。

    —— 简单介绍一下ACM里面的输入输出... —— 主要说C++的输入输出(其实其他的我不会...). —— C++里面有输入输出流,也就是cin和cout,用起来也算是比较方便吧... —— 但是, ...

  5. ACM之Java输入输出

    本文转自:ACM之Java输入输出 一.Java之ACM注意点 1. 类名称必须采用public class Main方式命名 2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错 ...

  6. Scanner, BufferedReader, InputStreamReader 与ACM模式输入

    Scanner, BufferedReader, InputStreamReader 与ACM模式输入html { -webkit-print-color-adjust: exact } * { bo ...

  7. Python3 acm基础输入输出

    案例一:输入字符串分割并转化成多个int数值 a, b= map(int, input().split()) try: while True: a, b= map(int, input().split ...

  8. 在竞赛ACM Java处理输入输出

    一.Java之ACM注意点 1. 类名称必须采用public class Main方式命名 2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非 ...

  9. ACM竞赛之输入输出

    http://acm.njupt.edu.cn/acmhome/problemdetail.do?id=1083&method=showdetail 比赛描述 字符串的输入输出处理. 输入 第 ...

  10. Python3 的描述符--完整例子详细解释

    ##描述符类的例子,这个例子说明了描述符和被描述符之间的关系 ##摄氏温度 class Celsius(): ## 1 描述符类 def __init__(self,value = 26.0): ## ...

随机推荐

  1. python 线程池 ThreadPoolExecutor

    从Python3.2开始,标准库为我们提供了concurrent.futures 模块,它提供了 ThreadPoolExecutor (线程池)和 ProcessPoolExecutor (进程池) ...

  2. 机器学习周刊 第4期:动手实战人工智能、计算机科学热门论文、免费的基于ChatGPT API的安卓端语音助手、每日数学、检索增强 (RAG) 生成技术综述

    LLM开发者必读论文:检索增强(RAG)生成技术综述! 目录: 1.动手实战人工智能 Hands-on Al 2.huggingface的NLP.深度强化学习.语音课 3.Awesome Jupyte ...

  3. 精细化边缘安全防护:如何防止CDN域名被恶意刷量?

    越是数字化时代,越要做好基建"安全"的顶层设计 随着消费及产业互联网的不断发展,数字化将实现全场景覆盖,人类的生活和生产方式也随之不断改变. 内容分发网络CDN(Content D ...

  4. hyper-v虚拟机中ubuntu连不上网络的解决办法

    首先重启下hyper-v的服务,看下情况: 1.检查hyper-v相关的服务有没有开启 2.如果开启了服务,unbuntu仍然不能连网,则在ubtuntu中进行接下来的步骤: 2.1 设置网络连接为N ...

  5. 正确使用 HttpClient

    正确使用 HttpClient 其实标题应该叫:在控制台程序中使用IHttpClientFactory 以前一直使用的是HttpWebRequest,.NET6工程代码提示已过时,使用HttpClie ...

  6. WSL2 配置 ArchLinux 初始化环境

    这篇文章针对的是在 Win11 系统的 WSL2 下安装 ArchLinux 系统, 网上很多中文教程都是使用 LxRunOffline 去做的,但是实际上该方法已经过时了,目前有更加先进的ArchW ...

  7. 【Cpp】RTTI 机制原理解析

    References Baidu Wiki C++中的RTTI机制详解 RTTI 推荐阅读: RTTI 原理 推荐阅读:C++中的RTTI机制 什么是RTTI机制? RTTI 是"Runti ...

  8. vue 状态管理 二、状态管理的基本使用

    系列导航 vue 状态管理 一.状态管理概念和基本结构 vue 状态管理 二.状态管理的基本使用 vue 状态管理 三.Mutations和Getters用法 vue 状态管理 四.Action用法 ...

  9. vue 调试工具vue-devtools 安装

    一.下载 工具vue-devtools 注:必须是5.1.1版本 比这个版本高的试过,没法正确使用. https://github.com/vuejs/vue-devtools/tree/v5.1.1 ...

  10. S3C2440移植linux3.4.2内核之支持YAFFS文件系统

    上一节S3C2440移植linux3.4.2内核之修改分区以及制作根文件系统我们构建了根文件系统,这节我们修改内核支持yaffs2文件系统 目录 获取yaffs2源码并给内核打补丁 编译内核make ...