算法教材:《算法竞赛入门到进阶》 清华大学出版社
网购:京东 当当   作者签名书(有发票):点我
有建议请加QQ 群:567554289

文章目录

  • 1. for循环
  • 2. sort()和sorted()函数
  • 3. 队列
  • 4. 数组赋值
  • 5. 输入
    • 5.1 在一行中输入多个整数
    • 5.2 二维数组的输入
    • 5.3 输入用非空格字符隔开的数字
    • 5.4 用map输入多个数字
    • 5.5 输入字符
    • 5.6 换行输入
    • 5.7 未明确说明终止的输入
  • 6. 带格式输出

  参加蓝桥杯Python组比赛,初学者常见的问题是对输入和输出的处理有疑问,还有常用的排序、队列等不熟。本文总结有关的操作。

1. for循环

  例1:iii的范围是4~(20190325-1)

for i in range(4,20190325):

  参考:https://blog.csdn.net/weixin_43914593/article/details/112979520
  
  例2:iii的范围是0~(len(num)-1)

for i in range(len(num)):

  参考:https://blog.csdn.net/weixin_43914593/article/details/112560449

2. sort()和sorted()函数

  sort()对一个数组排序,例:

n, s = map(int,input().split())
a = list(map(int,input().split()))
a.sort()

  参考:https://blog.csdn.net/weixin_43914593/article/details/112930544

  sorted()对结构体排序,例:

a = sorted(a, key=lambda a: a[0])

  参考:https://blog.csdn.net/weixin_43914593/article/details/112979653

3. 队列

  例:

from queue import *
q = Queue()
q.put((x,y))    #用队列直接处理结构体
q.empty():
q.get()

  参考:https://blog.csdn.net/weixin_43914593/article/details/112851771

4. 数组赋值

  例1:把一维数组赋值为0

flag = [0 for i in range(n+1)]

  参考:https://blog.csdn.net/weixin_43914593/article/details/112979653

  例2:把二维数组赋值为0

r = [[0] * 3 for i in range(k)]

  参考:https://blog.csdn.net/weixin_43914593/article/details/112909051

  例3:把S[i]赋值为i

N=1000002
s=[]
for i in range(N):  s.append(i)

  参考:https://blog.csdn.net/weixin_43914593/article/details/112979670

5. 输入

5.1 在一行中输入多个整数

  例1:第一行包含一个整数N,第二行包含N 个整数

n = int(input())
a = input().split(" ")
int(a[i])     #使用时要转换#或者这样写:
a=[int(i) for i in input().split()]

  参考:https://blog.csdn.net/weixin_43914593/article/details/112979634

  例2:输入一行多个整数

num=[int(i) for i in input().split()]

  参考:https://blog.csdn.net/weixin_43914593/article/details/112560449

5.2 二维数组的输入

  例:第一行包含3 个整数N、M 和T,后面M 行每行包含两个整数ts 和id。

first = input()
n, m, T = [int(i) for i in first.split()]a = []       #这是二维数组
for i in range(m):a.append([int(i) for i in input().split()])

  参考:https://blog.csdn.net/weixin_43914593/article/details/112979653

5.3 输入用非空格字符隔开的数字

  例:
  输入第一行为一个正整数T,表示输入数据组数。
  每组数据包含两行,第一行为去程的 起降 时间,第二行为回程的 起降 时间。
  起降时间的格式如下
  h1:m1:s1 h2:m2:s2
  h1:m1:s1 h3:m3:s3 (+1)
  h1:m1:s1 h4:m4:s4 (+2)

def get_time():line = str(input()).split(' ')   #一行字符串,以空格分开,分别读取     h1=int(line[0][0:2])     #处理字符串中的数字m1=int(line[0][3:5])s1=int(line[0][6:8])h2=int(line[1][0:2])m2=int(line[1][3:5])s2=int(line[1][6:8])day = 0 if(len(line)==3):    #line中有3个元素,最后一个是dayday = int(line[2][2])S = h1*3600 + m1*60 + s1E = h2*3600 + m2*60 + s2return E - S + day*24*3600n = int(input())
for i in range(n):ans = (get_time()+ get_time())/2hh = int(ans/3600)mm = int(ans/60%60)ss = int(ans%60)print("{:0>2d}:{:0>2d}:{:0>2d}".format(hh,mm,ss))

  参考:https://blog.csdn.net/weixin_43914593/article/details/112728088

5.4 用map输入多个数字

  例1:
  第一行包括 4 个正整数 A, B, C, m;
  第二行包含 A × B × C 个整数,其中第 ((i − 1)×B + (j − 1)) × C + (k − 1)+1 个数为 d(i, j, k);
  第 3 到第 m + 2 行中,第 (t − 2) 行包含 7 个正整数 lat, rat, lbt, rbt, lct, rct, ht。

A,B,C,m = map(int,input().split())ship=[]
for i in range(A):sublist=[]for j in range(B):sublist.append([0]*C)ship.append(sublist)life=list(map(int,input().split()))

  参考:https://blog.csdn.net/weixin_43914593/article/details/112761182

  例2:第一行包括 2 个正整数 n, K。第二行 n 个正整数,代表给定的 n 个数。

n, k = map(int,input().split())
a = input().split()

  参考:https://blog.csdn.net/weixin_43914593/article/details/112909051

  例3: 第一行包含两个整数 n、S;第二行包含 n 个非负整数 a1, …, an。

n, s = map(int,input().split())
a = list(map(int,input().split()))

  参考:https://blog.csdn.net/weixin_43914593/article/details/112930544

5.5 输入字符

  例: 输入一个由“x()|”组成的字符串。

s = input()
if s[pos] == '(':
elif s[pos] == 'x':

  参考:https://blog.csdn.net/weixin_43914593/article/details/112363933

5.6 换行输入

  例1:
  第一行包含一个整数N。(1 <= N <= 100)
  以下N行每行包含一个整数Ai。(1 <= Ai <= 100)

n=int(input())
numlist=[]
for i in range(n):numlist.append(int(input()))

  参考:https://blog.csdn.net/weixin_43914593/article/details/112405425

  例2:
  第一行包含两个整数N和K。(1 <= N, K <= 100000)
  以下N行每行包含两个整数Hi和Wi。(1 <= Hi, Wi <= 100000)

n,k = map(int,input().split())
w = []
h = []
for i in range(n):a,b = map(int,input().split())w.append(a)h.append(b)

  参考:https://blog.csdn.net/weixin_43914593/article/details/112424722

5.7 未明确说明终止的输入

  有时题目没有明确说明什么时候输入终止,例如“存在多组测试数据,每组测试数据一行包含一个正整数n(1<=n<=10000)。”
  解决方法:for n in sys.stdin

import sys
for n in sys.stdin:   n = int(n)n1 = int(n**0.5)s = 0for a in range(1, n1+1):for b in range(a, n1+1):if n - a**2 - 2*(b**2) >= 0:c = int(pow((n - a**2 - b**2 ), 0.5))if a**2 + b**2 + c**2 == n:s = 1print("{} {} {}".format(a, b, c))if s == 0:print("No Solution")

  参考:http://oj.ecustacm.cn/problem.php?id=1250
  这题的c++代码是:

#include <iostream>
#include <cmath>
using namespace std;
bool flag;
int main(){int n;while(cin>>n){int m = sqrt(n)+1;for(int i=1;i<=m;i++){for(int j=i;j<=m;j++){for(int k=j;k<=m;k++){if(i*i+j*j+k*k==n){flag=true;cout<<i<<' '<<j<<' '<<k<<endl;}}}}if(!flag){cout<<"No Solution"<<endl;}flag=false;}return 0;
}

6. 带格式输出

  例1: 输出四舍五入保留 4 位小数。

print('{:.4f}'.format(sqrt(sum/(n))))

  参考:https://blog.csdn.net/weixin_43914593/article/details/112930544
  
  例2:
  对于每一组数据输出一行一个时间hh:mm:ss,表示飞行时间为hh小时mm分ss秒。
  注意,当时间为一位数时,要补齐前导零。如三小时四分五秒应写为03:04:05。

print("{:0>2d}:{:0>2d}:{:0>2d}".format(hh,mm,ss))

  参考:https://blog.csdn.net/weixin_43914593/article/details/112728088

蓝桥杯软件类竞赛--Python的常用操作示例相关推荐

  1. 蓝桥杯软件类竞赛---手算题攻略

    <算法竞赛>详细介绍 文章目录 1. 巧用编辑器 (1)门牌制作 (2)2021年省赛新题"卡片" 2. 眼看手数 (1)迷宫 (2)七段码 3. 巧用Excel (1 ...

  2. 2021年第十二届蓝桥杯软件类省赛python组试题及其解析。

    目录 一.卡片 二.直线 三.货物摆放 四.路径 五.回路计算 六.时间显示 七.杨辉三角 八.左孩子右兄弟 九.异或数列 十.括号序列 一.卡片 本题总分:5分 [问题描述] 小蓝有很多数字卡片,每 ...

  3. 2021年第十二届蓝桥杯软件类省赛python组

    目录 2021年第十二届蓝桥杯软件类省赛python组 1.卡片 常规做法 使用functions.Counter计数 2.直线 3.货物摆放 4.路径 5.回路计算 递归--太慢跑不出来 状态压缩D ...

  4. 蓝桥杯软件类Java语言IDE(Eclipse)安装

    蓝桥杯软件类Java语言IDE(Eclipse)安装以及个性化设置 平时都在用idea搞工程类项目,正好报了下学期的蓝桥杯算法比赛,看到官网要求用eclipse编码,之前也参加过ccf-csp的比赛, ...

  5. 金蝉素数c语言,算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)

    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的小朋友贴标语.他负责贴的标语是分别写在四块红纸上的四个大字:"好.好.学.习".但 ...

  6. 2022年4月蓝桥杯软件类省赛:真题+解析

    文章目录 试题 A 试题 B 试题 C 试题 D 试题 E 试题 F 试题 G 试题 H 试题 I 试题 J 相关文章: 2021年4月蓝桥杯(软件类)省赛:真题+解析 2020年10月蓝桥杯(软件类 ...

  7. 蓝桥杯软件类比赛java,第十届蓝桥杯大赛软件类省赛

    第十届蓝桥杯大赛软件类省赛 这些题官网还没有解答的,我主要参考了b站UP主大雪菜的解法(绝大部分题先自己做了一遍),当然也网上查了一些解答,但发现现在网上的一些解法并不正确,希望可以给大家一个参考. ...

  8. 五邑大学校级蓝桥杯c语言试题,【智能制造学部】第十届“蓝桥杯”软件类校内选拔赛顺利举行...

    11月24日上午,由国家工业和信息化部.人才交流中心主办,共青团五邑大学委员会.五邑大学学生会协办,智能制造学部承办的第十届"蓝桥杯"全国软件和信息技术专业人才大赛软件类校内选拔赛 ...

  9. 第十二届蓝桥杯软件类模拟赛python程序设计 第二期(6)平行四边形面积

    如有错误欢迎指正 如有更好的解法欢迎分享 Topic 问题描述 给定一个平行四边形的底边长度 l 和高度 h,求平行四边形的面积. 输入格式 输入的第一行包含一个整数 l,表示平行四边形的底边长度. ...

最新文章

  1. MOSS2007 实现单点登陆
  2. vue-cli eslint 规则
  3. APP的UI测试要点
  4. 二、Netty服务端/客户端启动整体流程
  5. java并发编程之美-阅读记录10
  6. 重写数组的方法(改变原数组)
  7. 计算机408考研专题(建议收藏)
  8. 线上问题随笔记录数据库连接池问题
  9. Python 之 线程
  10. windows CMD.exe下写路径太长的解决方案
  11. 社区团购如今进行得如火如荼
  12. python电脑下载-PC端数据下载软件开发(Python)
  13. 笔记本电脑下载python视频-学Python买什么笔记本电脑?
  14. 【推荐系统】智能推荐算法在直播场景中的应用
  15. 电话号码以185****3547显示demo
  16. 增量式pid调节方式有何优点_PID控制在变频器驱动系统中的应用
  17. cad四级计算机考试,国家CAD等级考试介绍
  18. [转载]洛谷日报索引
  19. Zabbix-Sender 增加自定义监控项-- Ping 到目的地链路监控--bat脚本循环运行
  20. python图片镜像翻转_python中镜像实现方法

热门文章

  1. 51nod (2534,dp)
  2. HTK的解码过程的理解又遇到瓶颈了
  3. 基于Small及Weex的定制化APP方案
  4. sybase SQL 函数
  5. 8758_2的幂次方表示
  6. 职教云JAVA课程答案_智慧职教云课堂Java程序设计答案公众号
  7. 【chrome devtools】前端性能分析之chrome devtools的使用 前端项目内存性能优化的建议 前端浏览器崩溃卡死 前端性能分析实战
  8. mod python中文文档_mod_python中文文档
  9. 对ip blocks的理解
  10. 学习总结和反思(第十周)