▎前言

  看到这个题目,你一定会很好奇,为什么学打NOIP的要学习python?其实python对我们是很有用的!

  NOIP虽然不支持使用python提交代码,但是在NOILinux上天生自带python。python是一门比C++高级的语言,唯一的缺点就是慢!但是我们不用python来写代码,而是利用它自身打包好的函数实现一些C++要好多代码才能做到的事情。

  比如说打表、对拍、计算等等,也可以用来辅助你写代码,那么废话不多说,直接带你快速上手python!

▎计算器

☞『表达式』

  在python中,只要直接输入一个表达式,就会直接告诉你结果。

 >>> 1+1
2

  好吧,这个太简单了,我们来一个混合运算:

 >>> (2+16)*3/2
27.0

  虽然算对了,但是可以注意到:有除法时结果是浮点数。

  当然,诸如取模之类的运算也是可以的。

☞『整除』

  那么如何实现C++中的“/”呢?使用"//"。

 >>> 16//3
5

☞『乘方』

  两个“*”表示乘方:

 >>> 2**3
8

☞『高精度』

  python天生自带高精度。

 >>> 192608171145142333333333333333333323424213545324654654765765777776575676*4213423575686765974537687674568567
811539809172854192357590409566235439234427211936317976434431655370121871259439787490543441886511926376292

▎变量

☞『定义』

  python变量的定义可不一样,是隐藏数据类型的,自动判断数据类型,所以只要赋值即可。

 >>> a=1
>>> a
1
 >>> a="python"
>>> a
'python'

  顺便说一下,python的字符串可以单引号,也可以双引号括起来。

 >>> a=3.141592653
>>> a
3.141592653
 >>> a=111
>>> b=6
>>> a*b
666

☞『使用』

  如上所述,变量直接像C++一样用就可以了。

▎输入与输出

☞『输入』

  使用input输入:

 >>> a=input()
2
>>> a
''

  由于默认是字符串,所以返回的是字符串,如果要更换类型,那么我们就强制转换:

 >>> a=int(input())
2
>>> a
2

☞『输出』

  不一样的是输出少了个“f”:

 >>> print("Hello,world!")
Hello,world!

▎列表

  列表可以理解为数组,但是比数组好用、高级的多,天生就是vector。

☞『定义』

  稍微有点不太一样,是用中括号括起来的,但是不用写数据类型和大小,直接用就可以了:

 >>> list=[1,1,4,5,1,4]
>>> list
[1, 1, 4, 5, 1, 4]

  还可以在同一列表上使用不同类型的元素。

 >>> list=[1,2,3.14,"hello"]
>>> list
[1, 2, 3.14, 'hello']

☞『引用』

  和数组一模一样。

 >>> list=[1,2,3.14,"hello"]
>>> list
[1, 2, 3.14, 'hello']
>>> list[1]
2

  也是从0开始编号。

  当然,下标可以是负数,这样就是倒着数的第几个的意思。

 >>> list=[1,2,3,4,5]
>>> list[-1]
5

☞『区间』

  我们可以用“:”来取中间的一段区间。

 >>> list=[1,2,3,4,5]
>>> list[1:3]
[2, 3]

  我们要输出应该是2,3,4,但是为什么只输出了2,3呢?因为这是左闭右开的,也就是说只会显示区间[l,r-1]。

☞『其他』

  列表是支持加到末尾的。

 >>> list1=[1,2,3]
>>> list2=[4,5,6]
>>> list1+=list2
>>> list1
[1, 2, 3, 4, 5, 6]

  还可以跳过一些数:(冒号可以加的更多,其中下标为二的数被省去了)

 >>> list1=[1,2,3,4,5,6]
>>> list1[1:3:2]
[2]

▎if

  python的if和C++十分相似,但是python没有括号,要加冒号,并且严格按照空格来执行(4个空格)

 >>> a=1
>>> if a==1:
... print("YES")
...
YES

  再来看一看elif(else if):

 >>> a=1
>>> b=2
>>> if a==2:
... print(a)
... elif b==2:
... print(b)
...
2

▎for

  python有点不太一样,没有结束条件。

>>> list=[1,2,3,4,5]
>>> for i in list:
... print(list[i])
...
2
3
4
5

  可以看出i是默认从1开始,那么我们尝试从0开始:

 >>> list=[1,2,3,4,5]
>>> for i in range(0,5,1):
... print(list[i])
...
1
2
3
4
5

  其中range是个好东西,其中的三个数分别是初始值,结束值,和每次增加数量。

  注意:python是左闭右开的,所以区间要变成[0,5]。

▎结尾语

  当然,python的命令还有很多,推荐大家到菜鸟教程上学习。

【算法•日更•第二十七期】基础python的更多相关文章

  1. 【算法•日更•第二十八期】图论:强连通+Tarjan算法(一)

    ▎前言 一直都想学习这个东西,以为很难,结果发现也不过如此. 只要会些图论的基础就可以了. ▎强连通 ☞『定义』 既然叫强连通,那么一定具有很强的连通性. 强连通:就是指在一个有向图中,两个顶点可以互 ...

  2. 【算法•日更•第二期】查找算法:三分VS二分

    ▎前言:函数 如果你已经上过初二的数学课了,那么你十有八九会被函数折磨到吐血,这是一种中考压轴题类的题目,往往分类讨论到你恶心.不过没学过也不打紧,现场讲解一下: ☞『数学中的函数』 一般地,如果在一 ...

  3. 【算法•日更•第二十三期】数据结构:two-pointer(尺取法)&莫队

    ▎引入 ☞『例题』 一道十分easy的题: 洛谷P1638 长度为n的序列,m种数 找一个最短区间,使得所有数出现一遍 n≤1e6 ,m≤2e3. ☞『分析』 这道题非常的简单,但是如果不会two-p ...

  4. 【算法•日更•第六期】头脑风暴:洛谷P1528 切蛋糕题解

    ▎(一个没有用处的)前言 为什么这次题解特意写明题号呢?因为我发现了这样的事情: 所以不要混了,想看P1714题解的同志们可以圆润的滚开了. 好了,不说没用的了,切入正题: ▎题目 题目及测评链接:戳 ...

  5. 【算法•日更•第十期】树型动态规划&区间动态规划:加分二叉树题解

    废话不多说,直接上题: 1580:加分二叉树 时间限制: 1000 ms         内存限制: 524288 KB提交数: 121     通过数: 91 [题目描述] 原题来自:NOIP 20 ...

  6. 【算法•日更•第三十七期】A*寻路算法

    ▎写在前面 这是一种搜索算法,小编以前总是念成A乘寻路算法,没想到一直念错. 请大家都念成A星寻路算法,不要像小编一样丢人了. ▎A*寻路算法 ☞『引入』 相信大家都或多或少的玩过一些游戏吧,那么游戏 ...

  7. 【算法•日更•第四十七期】Mac与windows系统的差别

    小编最近装了个Mac系统,因为小编已经有笔记本可以用linux了,所以就决定在台式机上装个双系统,结果一不小心把Mac装在C盘上了,哎,说多了都是泪啊. 其实用了Mac之后才发现windows特别好用 ...

  8. 【算法•日更•第五十七期】快速傅里叶变换(FFT):从入门到放弃

    ▎一些用的上的东西 小编太菜了,很多东西都不会证明(主要是三角函数还没有学啊~~~). 附上链接https://blog.csdn.net/enjoy_pascal/article/details/8 ...

  9. 【算法•日更•第十九期】动态规划:RMQ问题

    ▎前言 首先先来说一下RMB是什么,当然是人民币啦. 今天我们要学的这个东西不一般,叫做RMQ问题,那么它和RMB有什么关系呢?待小编细细说来. ▎前置技能:动态规划 不会的同志请戳这里迅速了解动态规 ...

随机推荐

  1. Nginx之伪404( root与alias )

    目录 一.现象 二.root与alias的区别 三.建议 四.写在最后 一.现象   人类善于伪装,机器某些时候也善于伪装:Nginx请求看到404,第一反应就是文件不存在:但我们去检查的时候,它就正 ...

  2. 题解 洛谷 P4546 【[THUWC2017]在美妙的数学王国中畅游】

    首先发现有连边和删边的操作,所以我们肯定要用\(LCT\)来进行维护. 接下来考虑如何进行\(LCT\)上的信息合并. \(f=1\),则函数为\(f(x)=sin(ax+b)\) \(f=2\),则 ...

  3. Java基础之函数

    函数(方法)的定义: 函数就是定义在类中的具有特定功能的一段独立的小程序. 为什么有函数:为了提高代码的复用性,对独立代码进行抽取,把抽取部分代码部分,定义成一个独立的功能,方便日后使用.Java中对 ...

  4. 5.pandas新增数据列

    有的时候,表格自带的数据根本没有办法满足我们,我们经常会新加一列数据或者对原有的数据进行修改 还是接着上篇文章的数据进行操作 直接赋值 我想算一下每一天的温差 df.loc[:, 'wencha'] ...

  5. 如何阅读一本书——分析阅读Pre

    如何阅读一本书--分析阅读Pre 前情介绍 作者: 莫提默.艾德勒 查尔斯.范多伦 初版:1940年,一出版就是全美畅销书榜首一年多.钢铁侠Elon.Musk学过. 需要注意的句子: 成功的阅读牵涉到 ...

  6. UDP 网络程序-发送_接收数据

    """ 创建udp连接 发送数据给 """ from socket import * # 创建udp套接字,使用SOCK_DGRAM udp ...

  7. Python List cmp()方法

    描述 cmp() 方法用于比较两个列表的元素.高佣联盟 www.cgewang.com 语法 cmp()方法语法: cmp(list1, list2) 参数 list1 -- 比较的列表. list2 ...

  8. C++程序员容易走入性能优化误区!对此你怎么看呢?

    有些C++ 程序员,特别是只写C++ 没有写过 Python/PHP 等慢语言的程序员,容易对性能有心智负担,就像着了魔一样,每写3 行代码必有一行代码因为性能考虑而优化使得代码变形(复杂而晦涩). ...

  9. 星屑幻想 optimal mark

    LINK :SP839 星屑幻想 取自 OJ 的名称 小事情...题目大意还是要说的这道题比较有意思,想了一段时间. 给你一张图 这张图给答案带来的贡献是每条边上两个点值得异或 一些点的值已经被确定 ...

  10. 关于随机数 C++

    void test() { srand();//这里设置了 说明又得从头开始循环一次了 //如果没有设置 它还是基于main函数里的srand(1) for(int i=;i<;i++) { c ...