输入输出

input() 输入

Python3 中 input() 函数接受一个标准输入数据,返回为 string 类型。以换行(\n)结束。

input([prompt])
  • prompt: 提示信息。

split() 用于输入

split() 做输入处理,通过指定分隔符对字符串进行切片,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

str.split(str="", num=string.count(str))
  • str:分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num:分割次数,默认为 \(-1\) ,即分隔所有。

逐个数据输入

x = input().split()  # 输入两个整数
a = int(x[0]) # 第一个整数
b = int(x[1]) # 第二个整数

数组输入

x = input()
a = []
for i in x.split():
a.append(int(i)) # 注意数据类型转换

strip() 输入清理

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意只能删除开头和结尾的字符,不能删除中间部分的字符。

str.strip([chars])
  • chars:移除字符串头尾指定的字符序列。注意移除尾部字符序列时为反向,对称删除。

逐个数据输入

a = int(input().strip())

print() 输入

print(a)

如果不想换行:

print(a, end='str')  # 输出不换行,以 str 为分割

sort 排序

可以用 list 和 truple 实现 C/C++ 中结构体排序的功能。

lst = [('d', 2), ('a', 4), ('b', 3), ('c', 2)]

# 按照value排序
lst.sort(key=lambda k: k[1])
print(lst) # 按照key排序
lst.sort(key=lambda k: k[0])
print(lst) # 先按value排序再按key排序
lst.sort(key=lambda k: (k[1], k[0]))
print(lst) """输出
[('d', 2), ('c', 2), ('b', 3), ('a', 4)]
[('a', 4), ('b', 3), ('c', 2), ('d', 2)]
[('c', 2), ('d', 2), ('b', 3), ('a', 4)]
"""

更加复杂的需求。首先我们先建立如下 list :

lst = [{'level': 19, 'star': 36, 'time': 1},
{'level': 20, 'star': 40, 'time': 2},
{'level': 20, 'star': 40, 'time': 3},
{'level': 20, 'star': 40, 'time': 4},
{'level': 20, 'star': 40, 'time': 5},
{'level': 18, 'star': 40, 'time': 1}]

排序需求为:level 越大越靠前;level 相同,star 越大越靠前;level 和 star 相同,time 越小越靠前。

# 注意按照需求反向实现
# 先按time排序
lst.sort(key=lambda k: (k.get('time', 0))) # 再按照level和star顺序
# reverse=True表示反序排列,默认正序排列
lst.sort(key=lambda k: (k.get('level', 0), k.get('star', 0)), reverse=True)

Python 写 ACM 题目的一些技巧的更多相关文章

  1. 教你用python写:HDU刷题神器

    声明:本文以学习为目的,请不要影响他人正常判题 HDU刷题神器,早已被前辈们做出来了,不过没有见过用python写的.大一的时候见识了学长写这个,当时还是一脸懵逼,只知道这玩意儿好屌-.时隔一年,决定 ...

  2. 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本

    我用 python 写了一个自动生成索引的脚本 简介:为了刷算法题,建了一个 GitHub仓库:PiperLiu / ACMOI_Journey,记录自己的刷题轨迹,并总结一下方法.心得.想到一个需求 ...

  3. 开发记录_自学Python写爬虫程序爬取csdn个人博客信息

    每天刷开csdn的博客,看到一整个页面,其实对我而言,我只想看看访问量有没有上涨而已... 于是萌生了一个想法: 想写一个爬虫程序把csdn博客上边的访问量和评论数都爬下来. 打算通过网络各种搜集资料 ...

  4. python爬虫抓站的一些技巧总结

    使用python爬虫抓站的一些技巧总结:进阶篇 一.gzip/deflate支持现在的网页普遍支持gzip压缩,这往往可以解决大量传输时间,以VeryCD的主页为例,未压缩版本247K,压缩了以后45 ...

  5. Python 内编写类的各种技巧和方法

    Python 内编写类的各种技巧和方法 简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象 ...

  6. 作业1+2.四则运算(改进后完整版,用python写的)_064121陶源

    概述: 用一个星期加上五一的三天假期自学了python,在Mac系统上重新写出了四则运算的程序,编译器是PyCharm,相当于完成了作业2.d)"选一个你从来没有学过的编程语言,试一试实现基 ...

  7. 转载:用python爬虫抓站的一些技巧总结

    原文链接:http://www.pythonclub.org/python-network-application/observer-spider 原文的名称虽然用了<用python爬虫抓站的一 ...

  8. Python中编写类的各种技巧和方法

    简介 有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling). 你可以把它当作一 ...

  9. 用python爬虫抓站的一些技巧总结 zz

    用python爬虫抓站的一些技巧总结 zz 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本, ...

随机推荐

  1. iframe 页面嵌套

    由于目前项目基础界面,业务逻辑一样,只是细微有所差别.因而使用iframe来进行定制化处理. 如何来区分不同需求不同页面呢? 最初是想通过url携带参数来进行区分,但是随着需求变多,定制化也越来越细微 ...

  2. 动态class,style,src绑定写法 vue

    :class="{active:menuName===item.title}" :style="thisTitle==='一张图展示'?styles:''" : ...

  3. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cli) on project kircp-js-plan-resource: The packaging for this project did not assign a file to the bu

    结合网上的相关资料,要使用Lifecycle下的install 原因好像是Lifecycle下才会走Maven完整的phase.

  4. IBM产品系列和AIX系统版本

      AIX系统版本 AIX 7.2 No supported AIX levels. AIX 7.1 Technology Level     Base Level     Recommended L ...

  5. Ubuntu18.04 安装netstat

    关键命令 sudo apt-get install net-tools 参考博客:https://www.cnblogs.com/2sheep2simple/p/10611650.html

  6. JavaScript调试技巧之断点调试

    首先,在各个浏览器中,断点调试支持的最好的当然是Firefox,Firefox不仅可以使用Firebug调试页面js脚本,还可以用高级调试工具例如JavaScript Debugger (Venkma ...

  7. Codeforces 902 树同型构造 多项式长除法构造(辗转相除法)

    A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...

  8. small task

    task:use c89 draw turtle result:

  9. Python之网路编程之线程介绍

    一.什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才 ...

  10. JVM体系结构及优化

    源文档:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/index.html JVM体系结构     方法区,类加载器,堆,Java ...