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


    ▎前言

      看到这个题目,你一定会很好奇,为什么学打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的命令还有很多,推荐大家到菜鸟教程上学习。

  • 相关阅读:
    如何破解“千人千面”,深度解读用户画像
    如何破解“千人千面”,深度解读用户画像
    AngularJS的简单入门
    Could not complete request
    AngularJS中angular.min.js:80 Error: [ng:areq] http://errors.angularjs.org/1.2.9/ng/areq
    BeanCreationException: Error creating bean with name 'transactionManager' defined
    Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
    Caused by: java.net.BindException: Address already in use: bind
    Linux的远程连接工具:SSH的安装
    虚拟机的安装
  • 原文地址:https://www.cnblogs.com/TFLS-gzr/p/11260240.html
Copyright © 2020-2023  润新知