关于python的比赛_【蓝桥杯】——python集团的比赛技巧,Python,组
【蓝桥杯】—— Python组比赛技巧
蓝桥杯是大学生IT学科赛事,由工业和信息化部人才交流中心主办,所以对于大学生还说还是非常值得去参加的,2020年第十一届蓝桥杯新增了大学Python组,不分组别,第一届没有历届的真题,但是蓝桥杯作为一个算法竞赛,没有真题也影响不大,难度借鉴Java组或者C/C++组就可以了,因为看上了Python是第一届,而且Python的语法简单,内置了非常丰富的函数,特别是对字符串的操作,正则表达式等,用起来就一句话,人生苦短,我用Python。
运气的加成,笔者有幸进入了国赛,国赛前这段时间好好整理了一下本人参加比赛的一些技巧,正是本文章的由来,若有出错的地方,请各位高手不吝赐教。
一、Python最常用的内置函数
内置函数就是不需要导包就可以直接使用的函数
数学函数
abs() 函数:取绝对值
print(abs(-10))
10
divmod() 函数 :同时取商和余数
print(divmod(7,2))
(3, 1)
sum() 函数 :求和计算
print(sum([1,2,3]))
6
round() 函数: 四舍五入
print(round(5.1))
print(round(5.5))
5
6
pow() 函数 :计算任意N次方值
print(pow(2,3))
#也可以使用**
print(2**3)
8
8
min() 函数 :获取最小值
print(min(9,5,2,7))
2
max() 函数 :获取最大值
print(max(9,5,2,7))
9
数据转换函数
hex() 函数: 十进制转换成十六进制
print(hex(100))
0x64
oct() 函数: 十进制转换成八进制
print(oct(100))
0o144
bin() 函数 :十进制转换成二进制
print(bin(100))
0b1100100
bool() 函数 :将指定的参数转换成布尔类型
print(bool(1))
print(bool(0))
True
False
ord() 函数 :获取单个字符的ASCII数值
print(ord('A'))
65
float() 函数 :转换成浮点数
print(float(10))
10.0
chr() 函数: 转换一个整数并返回所对应的字符
print(chr(65))
A
list() 函数: 将可迭代对象转换为列表
print(list(range(1,10)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
对象创建函数
open()函数:打开文件并返回文件对象
f1 = open('E:\Hello.txt','r')
print(f1.readline())
Hello Python
range()函数:创建一个可迭代对象,内容是指定范围内的连续整数
for i in range(5):
print(i)
0
1
2
3
4
set()函数:创建一个无序不重复元素集合
set([1,2,1,1,3,4,4,6,5])
{1, 2, 3, 4, 5, 6}
迭代器操作函数
all() 函数: 判断指定序列中的所有元素是否都为 True,则返回 True,如果有一个为 False,则返回 False。
a = [1,2,0]
all(a)
False
any()函数: 判断指定序列中的所有元素是否都为 False,则返回 False,如果有一个为 True,则返回 True。
a = [1,0,0]
any(a)
True
sorted() 函数: 对可迭代对象进行排序
a = [3,1,4,2]
sorted(a)
[1, 2, 3, 4]
map()函数: 通过自定义函数实现对序列的元素映射操作并返回操作后的结果
list(map(int,['1','2','3']))
[1, 2, 3]
基本常用函数
format()函数: 格式化数据
"{} {}".format("hello", "world")
print("{:.2f}".format(3.1415926));
'hello world'
3.14
input()函数: 接受用户输入并返回所输入的 string 类型数据
s = input() #输入abc回车
print(s)
abc
len()函数: 返回一个对象的元素或项目个数
len([1,2,3,4])
4
二、python中字符串操作
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
string.count(str, beg=0, end=len(string))
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
string.endswith(obj, beg=0, end=len(string))
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string.find(str, beg=0, end=len(string))
跟find()方法一样,只不过如果str不在 string中会报一个异常.
string.index(str, beg=0, end=len(string))
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
string.join(seq)
在 string 上执行 lstrip()和 rstrip()
string.strip([obj])
转换 string 中的小写字母为大写
string.upper()
转换 string 中所有大写字符为小写.
string.lower()
翻转 string 中的大小写
string.swapcase()
怎样将以下列表转化为整数?
a=[1, 3, 5]
b=['4', '5', '6']
r1 = int("".join(map(str, a)))
r2 = int("".join(map(str, b)))
123
456
三、python中math的使用
要使用math函数必须先导入math包,这里列举几个做题中常用的。
import math
向上取整
print(math.ceil(3.1))
4
向下取整
print(math.floor(3.1))
3
乘方 开方
print(math.pow(10,3))
print(math.pow(27,1/3))
1000.0
1.0
四、正则表达式的基本使用
Python的正则表达式(Regular Expression )的模块是 ‘re’,它能帮你非常方便的检查一个字符串是否与某种模式匹配,比如你要在一个字符串s=’Regular 123 Expression’ 中查找‘123’、‘456’,只要这样写:
import re
s = 'Regular 123 Expression 456'
re.findall(r'\d+',s)
['123', '456']
是不是感觉自己写代码的技术又上升了一个档次,这里用到的函数 ”findall(rule , target [,flag] )” 是正则里面最常用的函数之一,作用就是在目标字符串target 中查找符合规则rule 的字符串,后面还可以跟一个规则选项flag用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。返回结果结果是一个列表,中间存放的是符合规则的字符串。如果没有符合规则的字符串被找到,就返回一个空列表。
上面的参数 r’\d+’ 很多同学可能就有疑惑了,’\d+'是一个字符串相信大家都看得出来,那字符串前面加个r是什么意思呢?其实在正则表达式的字符串前面加上r表示这个是一个raw字符串,只以正则表达式的元字符进行解析,不用理会ASCII的特殊字符。
比如,特殊符号“\b”在ASCII 字符中代表退格键,但同时“\b”也是一个正则表达式的特殊符号,代表“匹配一个单词边界”。
为了让re编译器把两个字符“\b”当成你想要表达的字符串,而不是一个退格键,你需要用另一个反斜线对它进行转义,即可以这样写:“\b”。
但这样做会把问题复杂化,特别是当你的正则表达式字符串里有很多特殊字符时,就更容易令人困惑了。
看到这里,相信大家都看懂了吧。
在比赛中使用以下正则符基本满足大部分的情况了:
^:匹配字符串开头
" * " 匹配前面的子表达式零次或多次
" + " 匹配前面的子表达式一次或多次
" ? " 匹配前面的子表达式零次或一次
" [abc]" :方括号表示字符集合,例子表示一个字符串有一个 "a" 或 "b" 或 "c" 等价于 [z|b|c]
" [a-z]": 表示一个字符串中存在一个 a 和 z 之间的所有字母
" [^a-z]" :表示一个字符串中不应该出现 a 到 z 之间的任意一个字母
" [0-9]": 表示一个字符串中存在一个 0 和 9 之间的所有数字
" \d " 匹配一个数字字符,等价[0-9]
" \D " 匹配一个非数字字符,等价[^0-9]
" \w" 匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”
" \W" 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”
五、文件操作
蓝桥杯比赛中经常出现需要输入多行多列数据的题目,如果手动一个个输入也可以,就是太浪费时间,如果利用好文件操作的方法,做题就会得心应手。
例如:hello.txt文件含30 行 50 列字符,怎样把它读到列表里?
最基本的文件操作方式
fp = open('E:\hello.txt','r')
res = []
s = fp.readlines()
for i in s:
res.append(i.strip('\n')) #使用strip()去掉换行符,如果不去的话会把‘\n’也读进来
fp.close() #记得要关闭连接,养成良好习惯
print(res[:])
输出结果:
利用Python自身的字符串操作优势,两行搞定,推荐此方法。
fp = open('E:\hello.txt','r')
res = [s.strip('\n') for s in fp.readlines()]
fp.close()
print(res[:])
输出结果:
相关文章:

杭电 HOJ 1312 Red and Black 解题报告
搜索,bfs。依旧用队列做。边界处懒得处理,全部初始化为-1。当然,0也可以。AC代码如下: #include<iostream> #include<deque> using namespace std;struct Point {int x,y; } x,y;int main() {char str[22];int i,j,n,…

pfile和spfile的区别
pfile和spfile的区别 pfile 默认的名称为“init例程名.ora”文件路径:/app/oracle/product/10.2.0/dbs,这是一个文本文件,可以用任何文本编辑工具打开。spfile 默认的名称为“spfile例程名.ora”文件路径:/app/oracle/product/10…

json操作2
import jsonfopen(a.txt,w,encodingutf-8)goods{ 宝马:111111, 奔驰:222222}resjson.dumps(goods,ensure_asciiFalse)#把字典转成jsonf.write(res) json.dump(goods,f,ensure_asciiFalse)#把字典转成json,json会帮你write一次 ----颜色不一样的代码一致运行结果ÿ…
缓冲区和数组的输入输出问题
最近编写程序的时候一直被数据的输入输出所困扰,由此写篇博文总结一下最近遇到的问题和解决方法,错误之处望指正。 1.数组使用的一些语法注意事项 (1)数组的定义 一维数组:类型名 数组名 [常量表达式] 常量表达式中可…

目前python主要应用领域零售_python3读取HDA零售企业数据(一)
#-*- coding:utf-8 -*-# 下载河南FDA各药品经营企业目录import urllib.requestimport urllib.parseimport reimport osimport http.cookiejarheader {Connection: Keep-Alive,Accept: application/x-ms-application, image/jpeg, application/xamlxml, image/gif, image/pjpeg…

调试webservice遇到“测试窗体只能用于使用基元类型作为参数的方法”的解决办法...
之前一直写webservice 没有遇见这种情况,因为一般返回的参数整形 字符串 之类的 都是基本类型,最多也就是把xml序列化为一个字符串返回,这次遇到了返回一个引用类型的,不能直接调试了。所以,现在只能写一个程序把webse…

EJB3.1 JBoss7.1 Eclipse3.7
为什么80%的码农都做不了架构师?>>> EJB3.1 JBoss7.1 Eclipse3.7 ------Hello World 一、环境配置: JDK:正常配置 Eclipse:正常下载,解压(V3.7) JBoss:正常下载…

NOIP2012-摆花
放题目不解释~~~~ 【试题描述】 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能…

github提交代码却没有显示绿格子
在github上提交代码之后,进入github上面查看自己的提交,可以看看刚刚的提交内容,但是却一直没有显示绿格子,一个原因是本地git的配置邮箱和github上面的邮箱不一致。 解决办法是,打开本地的git bash,然后直…

spark+openfire即时通讯工具二次开发参考文档
摘自: http://gmd20.blog.163.com/blog/static/168439232010527525542/ 其中Spark是开源的基于XMPP协议的即时通讯工具,公司最近也换到用这个了,说是在服务器(openfire)上可以备份消息,然后可以看员工的聊天记录 smac…

python selenium 等待页面加载完毕_Selenium_等待页面加载完毕
隐式等待WebDriver driver newFirefoxDriver();driver.get("www.baidu.com");driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);WebElement element driver.findElement(By.cssSelector(".abc"));((JavascriptExecutor)driver).executeS…

TechEd 2012奥兰多!
亚特兰大TechEd 2011如同昨天的事情,今天又无比期待奥兰多的TechEd 2012!如果可能的话,我将继续为大家分享关于奥兰多TechEd 2012 的现场见闻! 转载于:https://blog.51cto.com/suhua/845796

【常见CPU架构对比】维基百科
Comparison of instruction set architectures https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectures转载于:https://www.cnblogs.com/timeObjserver/p/9441242.html
Python基础学习1(Python的Windows和Linux的安装及简单学习)
一Python的安装 1.Windows下安装Python (1)windows 命令行的几个常见的命令 dir:查看当前目录下的所有文件,以及目录 cd NAME:进入到NAME目录下(tab键自动补全) D: 切换到D盘 type NUL…
Python Tutorial(十):浏览标准库(一)
10.1 操作系统接口 os模块提供很多函数用于和操作系统的交互: 确定使用import os风格而不是from os import *。这将避免os.open()被内建的open()函数遮住,它的操作截然不同。 内建的函数dir()和help()作为交互助手对于大的模块像os是非常有用的ÿ…

学业水平考试b能上985吗_河南单招哪些学院好考?哪些专业能录取?
高职单招的录取规则是什么?在符合报考条件的前提下,考试是由两部分组成:文化素质评价职业适应性测试、职业技能测试。文化素质评价大多院校采用学业水平考试等级成绩折合一定的分值计入。有些学校采用现场考试语数外三门,以实际成绩计入。职…

单例模式Java实现
为什么80%的码农都做不了架构师?>>> public class Singleton {private static Singleton instance null;// 同步时加锁的静态对象private static final Object OL new Object();private Singleton() {// Class initialize}/** 在多线程环境下执行时的…

Go环境搭建、Sublime Text 3 安装Go语言相关插件gosublime
Go 语言环境安装 1.brew install go 默认安装,被安装了/usr/local/Cellar/go 目录并自设置了环境变量。 2.go env 可查看目前的go的环境变量 3.配置一个GOPATH环境变量,是工作目录。 根据约定,GOPATH下需要建立3个目录: bin 存储编…

ABAP性能实例七例
一、SQL Interface 1.Select ... Where vs. Select Check 用Select … Where语句效率比Select Check语句要高,例如: SELECT * FROM SBOOK INTO SBOOK_WA WHERE CARRID LH AND CONNID 0400. ENDSELECT. SELECT * FROM SBOOK INTO SBOOK_WA. CHECK: SB…

C语言中打印‘%’
C语言中打印‘%’不能直接printf("%"),这里的%有特殊含义的,要想打印的话,需要输入printf("%%"),两个%才可以将它打印出来。C语言中的其他的特殊字符,以后再慢慢做整理。

vba 字体颜色_多掌握一些VBA语句,让自己书写代码更加顺畅
VBA 是好东西,对于身在职场的人员,或者是积极打拼的创业者,是数据分析的首选,他可以实现量身定做,解决一些规律性强的问题。或者代替人处理一些可以描述出有逻辑关系的数据分析。多掌握一些VBA语句,让自己书…

编写jQueryUI插件(widget)
使用jQueryUI的widget来写插件,相比于基本的jquery插件有一些好处: * 方便实现继承,代码重用 * 默认是单例 * widget已经给你实现好的一些常用方法,例如destroy 带来好处的同时也带来了荆棘和陷阱,本文的目的就是梳理这…

mail 发送email
(一)首先安装ssmpt和mailutils: sudo apt-get install ssmtp mailutils (二)接下来编辑配置文件sudo gedit /etc/ssmtp/ssmtp.conf rootYOUR_PERSONAL_MAILDOMAIN mailhubsmtp.gmail.com:465 rewriteDomaingmail.com A…

C语言中字符型在计算机中的存储
一. 字符型的分类和表示范围 char:是有符号还是无符号数视编译器而定,一般为有符号数,下文把它全部当成有符号数进行讨论 表示范围:32位和64位机器上均是一个字节,所以是八个bit位,最高位为符号位之后&…

python中正确的表达式_python中如何正确使用正则表达式的详细模式(Verbose mode expression)...
简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,…

ASP.NET中 RequiredFieldValidator(非空验证)的使用
ylbtech-ASP.NET-Control-Validator: RequiredFieldValidator(非空验证)的使用ASP.NET中 RequiredFieldValidator(非空验证)的使用。 1.A,运行效果返回顶部 登录 RequiredFieldValidator:非空验证重要的属性:1,ControlToValidate:要验证的控件…

5013.FortiGate企业级硬件防火墙Demo演示文档
FortiGate企业级硬件防火墙Demo演示文档 语言:英文类型:Demo大小:2MB格式:WEB摘要:和真实的硬件防火墙操作界面一模一样的,非常实用!可以通过这些界面了解到在配置硬件防火墙时需要配置哪些参数…

下拉列表JComboBox,列表框JList
1、下拉列表JComboBox public class Demo extends JFrame {public Demo() {setBounds(100, 100, 200, 100);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);Container c getContentPane();c.setLayout(new FlowLayout()); // JComboBox cbbnew JComboBox();…

C语言中整型在计算机中的存储
一 . 整型的表示 1.字面值后面加上L(l)表示long长整型 2.字面值后面加上U(u)表示usigned整型值 3.十进制123 ... 4.八进制,以0开头,如0123,0754 ... 5.十六进制,以0x开头,如0xF32 ... 二 .整型的分类和表示范围 ch…

多个前端项目放在一个git好还是_前端工作流
没有规矩不成方圆,如果一个项目只有你一个人在维护,那么你不需要担心很多问题,因为你对它心知肚明,但同时一个人的力量无法支撑起来大型项目。更多时候,我们需要与其他人合作,共同把项目推进,这…