输入输出

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. 断言(assert)

    断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言. 简单点说,断言指的就是,将结果判断说 ...

  2. EditPlus配置Java编译器

    一.环境说明 系统: windows 7 64位 editplus version:  4.3 二.设置步骤 打开工具中的配置用户工具: 找到用户工具User tools,点击组名Group Name ...

  3. 真香系列之 Golang 升级

    Golang 以前的依赖管理一直饱受诟病,社区的方案也层出不穷,比如 vendor, glide, godep 等.之前的依赖管理一直是依靠 GOPATH 或者将依赖代码下载到本地,这种方式都有劣势. ...

  4. Python笔试面试题目及答案

    1.is 和==的区别? is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象.是否指向同一个内存地址 == : 比较的两个对象的内容/值是否相等,默认会调用对象的eq()方法 ...

  5. iptables-restore - 恢复 IP Tables

    总览 SYNOPSIS iptables-restore [-c] [-n] 描述 DESCRIPTION iptables-restore 用来从 STDIN 给出的数据中恢复 IP Tables. ...

  6. laravel5.8 Auth::guide

    // 使用下面这个命令Laravel会自动为我们生成Auth路由和认证模块.跟着代码往下解读. php artisan make:auth // Http/Controllers/Auth/Login ...

  7. Java Script入门

    学习来源:https://www.runoob.com/js/js-tutorial.html JavaScript 教程 JavaScript 是 Web 的编程语言. 所有现代的 HTML 页面都 ...

  8. Python核心技术与实战——十六|Python协程

    我们在上一章将生成器的时候最后写了,在Python2中生成器还扮演了一个重要的角色——实现Python的协程.那什么是协程呢? 协程 协程是实现并发编程的一种方式.提到并发,肯很多人都会想到多线程/多 ...

  9. webview默认是不开启localstorage的

    .setDomStorageEnabled(true);// 打开本地缓存提供JS调用,至关重要 转载 https://blog.csdn.net/xhf_123/article/details/77 ...

  10. C++常用速查

    int main() { int arr[2][5] = { {1,8,12,20,25}, {5,9,13,24,26} }; } void f(double p[][10]) { } #inclu ...