【算法•日更•第二十七期】基础python

时间:2022-12-13 20:01:30

▎前言

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

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

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

▎计算器

『表达式』

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

1 >>> 1+1
2 2

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

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

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

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

『整除』

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

1 >>> 16//3
2 5

『乘方』

  两个“*”表示乘方:

1 >>> 2**3
2 8

『高精度』

  python天生自带高精度。

1 >>> 192608171145142333333333333333333323424213545324654654765765777776575676*4213423575686765974537687674568567
2 811539809172854192357590409566235439234427211936317976434431655370121871259439787490543441886511926376292

 

▎变量

『定义』

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

1 >>> a=1
2 >>> a
3 1

 

1 >>> a="python"
2 >>> a
3 'python'

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

1 >>> a=3.141592653
2 >>> a
3 3.141592653

 

1 >>> a=111
2 >>> b=6
3 >>> a*b
4 666

『使用』

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

▎输入与输出

『输入』

  使用input输入:

1 >>> a=input()
2 2
3 >>> a
4 '2'

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

1 >>> a=int(input())
2 2
3 >>> a
4 2

『输出』

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

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

▎列表

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

『定义』

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

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

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

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

『引用』

  和数组一模一样。

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

  也是从0开始编号。

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

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

『区间』

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

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

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

『其他』

  列表是支持加到末尾的。

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

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

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

 ▎if

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

1 >>> a=1
2 >>> if a==1:
3 ...     print("YES")
4 ...
5 YES

  再来看一看elif(else if):

1 >>> a=1
2 >>> b=2
3 >>> if a==2:
4 ...     print(a)
5 ... elif b==2:
6 ...     print(b)
7 ...
8 2

 ▎for

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

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

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

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

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

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

 ▎结尾语

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