Python在信息学竞赛中的运用及Python的基本用法(详解)


Posted in Python onAugust 15, 2017

前言

众所周知,Python是一种非常实用的语言。但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序。但正如LRJ在《算法竞赛入门经典-训练指南》中所说的一样,如果会用Python,在进行一些小程序的编写,如数据生成器时将会非常方便,它的语法决定了其简约性。本文主要介绍一下简单的Python用法,不会深入。

Python的安装和实用

Linux(以Ubuntu系统为例)

一般的Linux都自带了Python,在命令行中输入Python即可进入
Python在信息学竞赛中的运用及Python的基本用法(详解)

如果没有出现上图的文字,可以使用下面的安装方法:

sudo apt-get install python2.7 
sudo apt-get install python3.4
…………

Windows系统

(笔者目前在Ubuntu系统上,等有时间上Windows再补)

两种使用Python的方法

直接在命令行中写

因为Python是解释型编译,所以可以一行一行地在命令行中写。这在初学时用来测试某个语句很实用。比如下面这个例子:
Python在信息学竞赛中的运用及Python的基本用法(详解)
>>>的后面输入print "yyb love lrh",这条语句的作用是输出一个字符串,然后我们就可以在后面看到结果了。确实输出了一个字符串(不要在意内容)

文件

我们把Python代码存在文件中,通常以.py结尾。比如下面这个例子
我们在一个try.py中输入下面的代码

print "hello world!"

然后在命令行中编译python 文件名
Python在信息学竞赛中的运用及Python的基本用法(详解)
我们发现其正确的输出了。

Python的基本语法

下面来介绍一些Python的基本语法

注释

Python中的注释分单行注释和多行注释

print "Hello world" #这是一个单行注释
'''
这是多行注释
是多行注释
多行注释
行注释
注释
释
。
'''
变量及类型

Python的变量声明不需要指定类型
用=来给变量赋值,用法与C++一致。比如

yyb=141905 #这是一个整数
lrh=141936.0 #这是一个实数
str="This is a apple.I like apples.Apples are good for our health." #这是一个字符串

Python的字符串可以像字符数组一样使用(就像C++一样)比如

str="This is a apple.I like apples.Apples are good for our health."
print str[0] #输出第一个字符
print str[2:] #输出从第三个字符开始的字符串
print str[1:3] #输出从第二个到第三个的字符串,注意是左开右闭

Python的列表可以看做是一个存下任何数据类型(可以混用!)的数组,比如

List=['%',19260817,'frog',666.6]
#调用
print List[0]
print List[2]

Python的字典可以看做是一个映射(类似于C++STL中的map),同样可以混着用

Map={'name':'yyb','weight':'---','height':3.6}
#调用的时候可以
print Map['name']
print Map['yyb']

以上就是Python常用的几种数据类型。

另:Python的数类型是非常大的,不需要手写高精度

数据类型转换(常见)

函数 转换类型
int(a) 转换成整数
long(a) 转换成长整数
str(n) 转换成字符串

标准输入和输出

使用print输出。可以是任意类型(列表和字典都可以哦)

print 123
print 'helloworld'
print 123.2

使用input输入。

number=input("read a int:")

运算符

+,-,×,/与其意义一致
**表示幂,a**b表示\(a^b\)
比较运算符(如==,!=,<>)与C++语言一致
位运算(如&,|.~)与C++语言一致

条件语句

即if,基本语法如下:

if a==b:
 print a+b

注意if后面的冒号,并且注意,Python是以缩进来判断代码块的,也就是说如果要在if中执行多个操作,要这样写

if a==b:
 print a+b
 print b+a
 print a**b

while循环与if的语法非常类似

i=1
while i<100:
 i=i+1

随机数数据生成器中最重要的就是随机数啦,一般来说我会这么写

import random
a=int(random.uniform(1,100)) #这里是生成[1,100]的随机整数
#如果不加int强制转换,将会生成随机小数

一般而言,使用Python的好处就是不要像C++一样指定随机数种子,一般取系统时间。而在随机生成数据对拍时1s内随机数种子不会变,这样会导致生成大量重复数据。

文件操作

open用来打开文件

比如下面这个例子

fin=open("read.txt","r") #打开一个文件读入
fout=open("output.txt","w") #打开一个文件写出
str=fin.read(10) #从read.txt中读入长度为10的字符串
fout.write(str) #输出str到output.txt中
# 注意输入输出都是字符串,所以如果要输出一个整数要采用这种方式
a=100
fout.wrote(str(a))
fin.close()
fout.close()

进阶内容

以上就是在竞赛时常用的Python语法和技巧。但实际操作时难免会碰到其他问题,更多内容可以参考,你会更多地看到Python的方便之处

另外需要注意的是,因为Python运行比较慢,如果要对拍的话,尽量不要写Python版的。笔者一般只用Python写数据生成器和简单的小程序。

本人初学Python,如果还有错误,请诸位读者大佬指出,感激不尽。

以上这篇Python在信息学竞赛中的运用及Python的基本用法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python字符串,数值计算
Oct 05 Python
django rest framework之请求与响应(详解)
Nov 06 Python
python中Apriori算法实现讲解
Dec 10 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
python-pyinstaller、打包后获取路径的实例
Jun 10 Python
python通过txt文件批量安装依赖包的实现步骤
Aug 13 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
python 魔法函数实例及解析
Sep 25 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
python 三种方法实现对Excel表格的读写
Nov 19 Python
OpenCV3.3+Python3.6实现图片高斯模糊
May 18 Python
Python Matplotlib库实现画局部图
Nov 17 Python
Python对列表中的各项进行关联详解
Aug 15 #Python
浅析Python中的赋值和深浅拷贝
Aug 15 #Python
Python单例模式的两种实现方法
Aug 14 #Python
Python基于Matplotlib库简单绘制折线图的方法示例
Aug 14 #Python
python使用super()出现错误解决办法
Aug 14 #Python
Python SQLite3数据库日期与时间常见函数用法分析
Aug 14 #Python
python itchat实现微信自动回复的示例代码
Aug 14 #Python
You might like
php 引用(&amp;)详解
2009/11/20 PHP
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
Vue自定义指令使用方法详解
2017/08/21 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
经典c++面试题二
2015/08/14 面试题
十佳护士获奖感言
2014/02/18 职场文书
党校学习自我鉴定
2014/02/24 职场文书
工伤事故赔偿协议书范文
2014/09/24 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js