python中使用()注释语句和运算_浅谈Python在信息学竞赛中的运用及Python的基本用法...

浅谈Python在信息学竞赛中的运用及Python的基本用法

前言

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

Python的安装和实用

Linux(以Ubuntu系统为例)

一般的Linux都自带了Python,在命令行中输入Python即可进入

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

sudo apt-get install python2.7

sudo apt-get install python3.4

…………

Windows系统

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

两种使用Python的方法

直接在命令行中写

因为Python是解释型编译,所以可以一行一行地在命令行中写。这在初学时用来测试某个语句很实用。比如下面这个例子:

在>>>的后面输入print "yyb love lrh",这条语句的作用是输出一个字符串,然后我们就可以在后面看到结果了。确实输出了一个字符串(不要在意内容)

文件

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

我们在一个try.py中输入下面的代码

print "hello world!"

然后在命令行中编译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的方便之处

http://www.runoob.com/python/python-tutorial.html

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

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

PS:后期可能会增加一些内容,有任何建议也可以在评论给出,谢谢

【ZOJ】3785 What day is that day? ——浅谈KMP在ACM竞赛中的暴力打表找规律中的应用

转载请声明出处:http://www.cnblogs.com/kevince/p/3887827.html    ——By Kevince 首先声明一下,这里的规律指的是循环,即找到最小循环周期. 这 ...

如何使用Python在Kaggle竞赛中成为Top15

如何使用Python在Kaggle竞赛中成为Top15 Kaggle比赛是一个学习数据科学和投资时间的非常的方式,我自己通过Kaggle学习到了很多数据科学的概念和思想,在我学习编程之后的几个月就开始 ...

转:浅谈CSS在前端优化中一些值得注意的关键点

前端优化工作中要考虑的元素多种多样,而合理地使用CSS脚本可以在很大程度上优化页面的加载性能,以下我们就来浅谈CSS在前端优化中一些值得注意的关键点: 当谈到Web的“高性能”时,很多人想到的是页面加 ...

【WebApi系列】浅谈HTTP在WebApi开发中的运用

WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...

python操作txt文件中数据教程[4]-python去掉txt文件行尾换行

python操作txt文件中数据教程[4]-python去掉txt文件行尾换行 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文章 python操作txt文件中数据教程[1]-使用pyt ...

python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...

python操作txt文件中数据教程[2]-python提取txt文件

python操作txt文件中数据教程[2]-python提取txt文件中的行列元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 原始txt文件 程序实现后结果-将txt中元素提取并保存在c ...

浅谈箭头函数和setTimeout中的this

箭头函数会改变this的指向,这个大家看文档都看到过,可是有没有具体理解呢?我发现自己应该可能大概是......emmmm,然后我整理了一遍,加强一下概念吧顺带再讲一下setTimeout这个函数改写 ...

浅谈格雷码(Grey Code)在信息学竞赛中的应用

1.格雷码的概念 1.性质 格雷码(Grey Code),又叫循环二进制码或反射二进制码,是一种编码方式,它的基本特点是任意两个相邻的格雷码只有一位二进制数不同. 常用的二进制数与格雷码间的转换关系如 ...

随机推荐

<;<;<; struts 的一系列介绍

struts有什么用? 以前使用servlet开发应用系统的人深深感受到在java代码中嵌入大量html代码是一件非常痛苦的事,于是sun推出了JSP,解决了java代码中嵌入html代码的问题.但是 ...

[skill][gdb] gdb 多线程调试

中文快速入门: http://coolshell.cn/articles/3643.html (关于多线程的部署说的并不太对) 进阶: 多进程相关概念: inferiors 是什么? http://m ...

Objective-C基础数据类型-NSSet[转]

转自GISerYang 集合: 集合(NSSet)和数组(NSArray)有相似之处,都是存储不同的对象的地址:不过NSArray是有序的集合,NSSet是无序的集合. 集合是一种哈希表,运用散列算法 ...

按列 sort 排序 Linux 如何查看当前占用CPU或内存最多的K个进程

用法:sort [选项]... [文件]...Write sorted concatenation of all FILE(s) to standard output. 长选项必须用的参数在使用短选项 ...

在Mac OS X 通过抓包、“第三方下载工具”加速下载、安装APP或系统

#!/bin/bash ######################################################################################## ...

列表显示数据 但是数据的字体颜色要js添加

1.需求:数据在前台显示,但是每个条记录的颜色要有点不同 1.java后台数据的处理 String ids=""; for(int x=0;x

Metasploit渗透测试魔鬼训练营

首本中文原创Metasploit渗透测试著作,国内信息安全领域布道者和资深Metasploit渗透测试专家领衔撰写,极具权威性.以实践为导向,既详细讲解了Metasploit渗透测试的技术.流程.方法 ...

Hive学习之二 《Hive的安装之自定义mysql数据库》

由于MySQL便于管理,在学习过程中,我选择MySQL. 一,配置元数据库. 1.安装MySQL,采用yum方式. ①yum  install  mysql-server,安装mysql服务端,安装服 ...

如何提取Redis中的大KEY

工作中,经常有些Redis实例使用不恰当,或者对业务预估不准确,或者key没有及时进行处理等等原因,导致某些KEY相当大. 那么大Key会带来哪些问题呢? 如果是集群模式下,无法做到负载均衡,导致请求 ...

远程调用其它站点并设置cookie

远程调用其它站点并设置cookie: 参考js var domainArray = [ {site:'g.com',action:'/b.do?c' } ,{site:'www.baidu.com', ...

你可能感兴趣的:(python中使用()注释语句和运算_浅谈Python在信息学竞赛中的运用及Python的基本用法...)