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之使用Python查询更新数据库
Nov 25 Python
python使用多线程不断刷新网页的方法
Mar 31 Python
基于Python的文件类型和字符串详解
Dec 21 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 26 Python
celery4+django2定时任务的实现代码
Dec 23 Python
对python中Json与object转化的方法详解
Dec 31 Python
Python学习笔记之文件的读写操作实例分析
Aug 07 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
Python ORM框架Peewee用法详解
Apr 29 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 Python
python自动获取微信公众号最新文章的实现代码
Jul 15 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
Zend Guard一些常见问题解答
2008/09/11 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
nginx下安装php7+php5
2016/07/31 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
laravel model 两表联查示例
2019/10/24 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
Three.js基础学习教程
2017/11/16 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
python 换位密码算法的实例详解
2017/07/19 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
python搜索包的路径的实现方法
2019/07/19 Python
Python3分析处理声音数据的例子
2019/08/27 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
BudgetAir印度:预订航班、酒店和汽车租赁
2019/07/07 全球购物
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
如何利用cmp命令比较文件
2013/09/23 面试题
广州某公司软件工程师面试题
2014/12/22 面试题
计算机科学系职业生涯规划书
2014/03/08 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
转让协议书范本
2014/09/13 职场文书
先进集体申报材料
2014/12/25 职场文书
个人培训总结
2015/03/05 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏