python之初入基础

作者: Python野路子 | 来源:发表于2017-12-06 00:02 被阅读0次

    简介:python是一门完全面向对象的编程语言。
    哲学:Python 的设计哲学是优雅、明确、简单。
    特性:python是一门强类型,动态类型的语言。

    特性
    1. 强类型,一个数据的类型一旦被确定,如果不经过强制转换,就不会被更改。
    print('1' + 2)  # ==>TypeError: must be str, not int
    print(int('1') + 2) # ==> 3
    

    弱类型:
    数值与字符型相加,拼接成字符串;
    "1"+2 => '12'
    int和float相加,弱类型会隐式转换成float相加,而强类型则不行;

    1. 动态类型,可以任意修改数据的类型,相比于静态类型,声明了一个变量用于保存字符串,那么这个变量,就只能字符串了,不能在存储其他类型。python中变量无类型,随时可变。python不需要声明数据类型
    name = 'a'  # 字符串
    name = 1  # 数字
    name = []  # 列表
    name = {}  # 字典
    
    变量命名规则
    1. 由数字,字母,下划线组成;
    2. 不能以数字开头;
    3. 不要用python关键字;
    4. 尽量取一个有意义的名字,“见名知意”
    5. 区分大小写;
    数值类型

    数值类型就是我们平常用来做计算的数字类型,在python中有如下几种数值类型:
    整型 int: a = 2
    浮点型 float: b = 2.5
    布尔型 bool:flag = True
    复数型 complex:c = 1.5 + 0.5j (在python中用小写 j ,表示虚部,用其他的字母不行)


    image.png

    数值类型主要是用来是做运算的,所以还会有如下的运算符
    数值运行常用运算符:
    + - / //(整除,向下取整) %(取余) ** (幂)


    image.png

    赋值运算符
    = += -= *= /= ....
    基本数值类型中前三种是常用的,复数在数学里面用得多,但是一般是用不上的。

    序列类型

    在python中三种序列类型,序列类型简单来说就是对象里面的元素是有顺序的
    字符串 str
    列表 list
    元组tuple
    可变序列:list
    不可变序列:str,tuple
    1).创建序列
    字符串用引号创建


    image.png

    注:其中三个引号支持换行,其他两个不支持;

    列表用中括号 [] 创建
    元组用小括号() 或者 直接用逗号隔开各元素


    image.png

    注:当元组只有一个元素时注意加逗号,否则当做整型处理;
    2).序列的通用操作:
    索引取值切片;
    类型的转换: str() list() tuple ();
    相加 + +=;
    重复 * *=;
    检查成员 in not in;

    索引取值切片

    索引:正向索引和反向索引
    image.png

    注:索引即利用下标来取对应元素,下标是从0或者-1到序列长度-1,图中错误是因为s最长下标为s[5]或s[-6]
    下面以图形来讲解序列的分布


    image.png

    索引从0 ~ 13或者-1 ~ -14,注意不要越界!!
    求序列长度


    image.png
    切片:

    切片的返回结果类型和切片对象类型一致,返回的是切片对象的子序列,如:对一个列表切片返回一个列表;
    步长step默认为1。
    正向:从左至右,左闭右开;正向时步长step为正,就是每次截取几个取前面第一个


    image.png
    image.png

    逆向:反过来,从右至左,注意左闭右开,步长step为负,就是每次截取几个,取后面那个。


    image.png
    image.png

    总结:对于切片不管是正序还是倒序,只要记住起始为闭,终点为开即可。在step的符号一定的情况下,start和end可以混合使用正向和反向索引,无论怎样,你都要保证start和end之间有和step方向一致元素 间隔,否则会切出空列表;


    image.png

    如果一边没写哪个索引,则对应是“到底”,同时,step的正负决定了切片结果的元素采集的先后,而step默认为1。


    image.png
    注意:列表和元组类似处理方式,对于切片操作需要看返回的是什么类型的列表还是元组,如果取其中元素值需要注意操作;
    类型的转换: str() list() tuple ()
    image.png

    只有数字型的字符串才能转换为整型int()


    image.png image.png
    image.png

    注意:list()需要迭代器,字符串或者元组和列表,数值型不行!所以list(1,3)会报错!!
    元组类似列表处理


    image.png
    相加 + +=
    image.png

    注:因为是强类型语言,类型不可变,只能做同类型处理;

    重复 * *=
    image.png
    检查成员 in not in
    image.png
    课后实践:
    1. 时间为20171206,通过除法和取余,来得到对应的日,月,年。请用代码完成。
      date = 20170608
      print('year=',date // 10000)  
      print('month=',date //100 % 100)
      print('day=',date % 100 )
    
    总结:通过//和%取得相应数字对应位数值,一般可通过其余%来计算一个周期,比如数7游戏,一群人围成一圈,数到7的倍数,则出列,游戏继续。
    1. 对一个长度为5的列表,用多种方法取第3位的值。
    li = ['I','learn','python','very','hard']
    num1 = li[2]
    num2 = li[2:3][0] ##返回还是列表,用索引去里面值
    num3 = li[-3]
    num4 = li[-3:-4:-1][0] #-1不能省略不写,否则默认为1,索引和step步长方向不一致,起出来的为空列表
    num5 = li[2:3:2][0]
    num6 = li[2::3][0]
    num7 = li[2:-2][0]
    num8 = li[1:-4:-1] #倒序则左闭右开,-1不能省略;
    num9 = li[-3:1:-1][0]
    
    总结:对于切片不管是正序还是倒序,只要记住起始为闭,终点为开即可(左闭右开)。

    相关文章

      网友评论

        本文标题:python之初入基础

        本文链接:https://www.haomeiwen.com/subject/qrjhixtx.html