Python在信息學(xué)競(jìng)賽中的運(yùn)用及Python的基本用法(詳解)
前言
眾所周知,Python是一種非常實(shí)用的語(yǔ)言。但是由于其運(yùn)算時(shí)的低效和解釋型編譯,在信息學(xué)競(jìng)賽中并不用于完成算法程序。但正如LRJ在《算法競(jìng)賽入門經(jīng)典-訓(xùn)練指南》中所說的一樣,如果會(huì)用Python,在進(jìn)行一些小程序的編寫,如數(shù)據(jù)生成器時(shí)將會(huì)非常方便,它的語(yǔ)法決定了其簡(jiǎn)約性。本文主要介紹一下簡(jiǎn)單的Python用法,不會(huì)深入。
Python的安裝和實(shí)用
Linux(以Ubuntu系統(tǒng)為例)
一般的Linux都自帶了Python,在命令行中輸入Python即可進(jìn)入

如果沒有出現(xiàn)上圖的文字,可以使用下面的安裝方法:
sudo apt-get install python2.7 sudo apt-get install python3.4 …………
Windows系統(tǒng)
(筆者目前在Ubuntu系統(tǒng)上,等有時(shí)間上Windows再補(bǔ))
兩種使用Python的方法
直接在命令行中寫
因?yàn)镻ython是解釋型編譯,所以可以一行一行地在命令行中寫。這在初學(xué)時(shí)用來(lái)測(cè)試某個(gè)語(yǔ)句很實(shí)用。比如下面這個(gè)例子:

在>>>的后面輸入print "yyb love lrh",這條語(yǔ)句的作用是輸出一個(gè)字符串,然后我們就可以在后面看到結(jié)果了。確實(shí)輸出了一個(gè)字符串(不要在意內(nèi)容)
文件
我們把Python代碼存在文件中,通常以.py結(jié)尾。比如下面這個(gè)例子
我們?cè)谝粋€(gè)try.py中輸入下面的代碼
print "hello world!"
然后在命令行中編譯python 文件名

我們發(fā)現(xiàn)其正確的輸出了。
Python的基本語(yǔ)法
下面來(lái)介紹一些Python的基本語(yǔ)法
注釋
Python中的注釋分單行注釋和多行注釋
print "Hello world" #這是一個(gè)單行注釋 ''' 這是多行注釋 是多行注釋 多行注釋 行注釋 注釋 釋 。 '''
Python的變量聲明不需要指定類型
用=來(lái)給變量賦值,用法與C++一致。比如
yyb=141905 #這是一個(gè)整數(shù) lrh=141936.0 #這是一個(gè)實(shí)數(shù) str="This is a apple.I like apples.Apples are good for our health." #這是一個(gè)字符串
Python的字符串可以像字符數(shù)組一樣使用(就像C++一樣)比如
str="This is a apple.I like apples.Apples are good for our health." print str[0] #輸出第一個(gè)字符 print str[2:] #輸出從第三個(gè)字符開始的字符串 print str[1:3] #輸出從第二個(gè)到第三個(gè)的字符串,注意是左開右閉
Python的列表可以看做是一個(gè)存下任何數(shù)據(jù)類型(可以混用?。┑臄?shù)組,比如
List=['%',19260817,'frog',666.6] #調(diào)用 print List[0] print List[2]
Python的字典可以看做是一個(gè)映射(類似于C++STL中的map),同樣可以混著用
Map={'name':'yyb','weight':'---','height':3.6}
#調(diào)用的時(shí)候可以
print Map['name']
print Map['yyb']
以上就是Python常用的幾種數(shù)據(jù)類型。
另:Python的數(shù)類型是非常大的,不需要手寫高精度
數(shù)據(jù)類型轉(zhuǎn)換(常見)
| 函數(shù) | 轉(zhuǎn)換類型 |
|---|---|
| int(a) | 轉(zhuǎn)換成整數(shù) |
| long(a) | 轉(zhuǎn)換成長(zhǎng)整數(shù) |
| str(n) | 轉(zhuǎn)換成字符串 |
標(biāo)準(zhǔn)輸入和輸出
使用print輸出。可以是任意類型(列表和字典都可以哦)
print 123 print 'helloworld' print 123.2
使用input輸入。
number=input("read a int:")
運(yùn)算符
+,-,×,/與其意義一致
**表示冪,a**b表示\(a^b\)
比較運(yùn)算符(如==,!=,<>)與C++語(yǔ)言一致
位運(yùn)算(如&,|.~)與C++語(yǔ)言一致
條件語(yǔ)句
即if,基本語(yǔ)法如下:
if a==b: print a+b
注意if后面的冒號(hào),并且注意,Python是以縮進(jìn)來(lái)判斷代碼塊的,也就是說如果要在if中執(zhí)行多個(gè)操作,要這樣寫
if a==b: print a+b print b+a print a**b
while循環(huán)與if的語(yǔ)法非常類似
i=1 while i<100: i=i+1
隨機(jī)數(shù)數(shù)據(jù)生成器中最重要的就是隨機(jī)數(shù)啦,一般來(lái)說我會(huì)這么寫
import random a=int(random.uniform(1,100)) #這里是生成[1,100]的隨機(jī)整數(shù) #如果不加int強(qiáng)制轉(zhuǎn)換,將會(huì)生成隨機(jī)小數(shù)
一般而言,使用Python的好處就是不要像C++一樣指定隨機(jī)數(shù)種子,一般取系統(tǒng)時(shí)間。而在隨機(jī)生成數(shù)據(jù)對(duì)拍時(shí)1s內(nèi)隨機(jī)數(shù)種子不會(huì)變,這樣會(huì)導(dǎo)致生成大量重復(fù)數(shù)據(jù)。
文件操作
open用來(lái)打開文件
比如下面這個(gè)例子
fin=open("read.txt","r") #打開一個(gè)文件讀入
fout=open("output.txt","w") #打開一個(gè)文件寫出
str=fin.read(10) #從read.txt中讀入長(zhǎng)度為10的字符串
fout.write(str) #輸出str到output.txt中
# 注意輸入輸出都是字符串,所以如果要輸出一個(gè)整數(shù)要采用這種方式
a=100
fout.wrote(str(a))
fin.close()
fout.close()
進(jìn)階內(nèi)容
以上就是在競(jìng)賽時(shí)常用的Python語(yǔ)法和技巧。但實(shí)際操作時(shí)難免會(huì)碰到其他問題,更多內(nèi)容可以參考,你會(huì)更多地看到Python的方便之處
另外需要注意的是,因?yàn)镻ython運(yùn)行比較慢,如果要對(duì)拍的話,盡量不要寫Python版的。筆者一般只用Python寫數(shù)據(jù)生成器和簡(jiǎn)單的小程序。
本人初學(xué)Python,如果還有錯(cuò)誤,請(qǐng)諸位讀者大佬指出,感激不盡。
以上這篇Python在信息學(xué)競(jìng)賽中的運(yùn)用及Python的基本用法(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 繪圖模塊matplotlib的使用簡(jiǎn)介
這篇文章主要介紹了python 繪圖模塊matplotlib的使用簡(jiǎn)介,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03
Python 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的web服務(wù)器
這篇文章主要介紹了Python 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的web服務(wù)器的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2021-01-01
Python Selenium 之?dāng)?shù)據(jù)驅(qū)動(dòng)測(cè)試的實(shí)現(xiàn)
這篇文章主要介紹了Python Selenium 之?dāng)?shù)據(jù)驅(qū)動(dòng)測(cè)試的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
python 實(shí)現(xiàn)批量圖片識(shí)別并翻譯
這篇文章主要介紹了python 實(shí)現(xiàn)批量圖片識(shí)別并翻譯,幫助大家利用python處理圖片,感興趣的朋友可以了解下2020-11-11
Django學(xué)習(xí)筆記之Class-Based-View
下面這篇文章主要介紹了Class-based View,為什么要有這個(gè)Class-based View呢?view不都是一個(gè)方法嗎?跟類有啥關(guān)系?其實(shí)答案很明顯,用類其實(shí)是為了抽象,抽象出通用的,將可變的暴露出來(lái),這樣我們就可以用最少的代碼實(shí)現(xiàn)復(fù)雜的功能了。下面來(lái)看看詳細(xì)的介紹吧。2017-02-02
詳解python?sklearn中的數(shù)據(jù)預(yù)處理方法
本篇文章主要講解Python的sklearn庫(kù)中常用的數(shù)據(jù)預(yù)處理方法,主要介紹工具中的內(nèi)容,即該庫(kù)中的相關(guān)方法包含的常用接口和基本使用,希望對(duì)大家有所幫助2023-08-08
MAC平臺(tái)基于Python Appium環(huán)境搭建過程圖解
這篇文章主要介紹了MAC平臺(tái)基于Python Appium環(huán)境搭建過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Django認(rèn)證系統(tǒng)實(shí)現(xiàn)的web頁(yè)面實(shí)現(xiàn)代碼
這篇文章主要介紹了Django認(rèn)證系統(tǒng)實(shí)現(xiàn)的web頁(yè)面實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08

