一、Python基础——python廖雪峰学习笔记

学习来源:python廖雪峰个人网站https://www.liaoxuefeng.com/wiki/1016959663602400

另一个不错的网站:菜鸟教程(包含,python,Java,PHP等多种语言,资源全部免费)https://www.runoob.com/python3/python3-tutorial.html

python安装:用的最新的的python3.7.0,cmd命令行输入python运行,exit()退出环境。命令行打开文件位置,cd C:\Users\D.K\PycharmProjects,查看此文件夹下目录输入dir,用python执行,输入python learning.py

csdn笔记输入方式,fn+0便可调节是竖线光标还是单字符光标

  • Python基础

    • 注释为井号#,冒号:结尾时,缩进的语句视为代码块,python大小写敏感,缩进tab一般是四个空格
    • 数据类型和变量
      • 整数,16进制的话,用0x前缀表示。
      • 浮点数,科学计数法,10用e代替,12000表示为1.2e4
      • 字符串,‘abc’其中单引号不算字符,要是单引号要做字符,就要用双引号最外围括起来。例如:“I‘m OK”
      • 转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,而不转义时,Python还允许用r''表示''内部的字符串默认不转义,即在单引号前加一个r
        print(r'\\\t\\')
        \\\t\\
      • 如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容
      • 布尔值,只有True,Flase两种,注意大小写,布尔值可以用andornot运算。not运算是非运算,它是一个单目运算符
      • 空值,用None表示,与0不同,因为0是有意义的。
      • 变量
      • 常量,通常用全部大写的变量名表示常量,虽然大写之后仍然是一个变量,这样只是方便表示和区分
      • 最后,解释整数的除法是精确的。python有两种除法,/和//,
        • /除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数
        • 还有一种除法是//,称为地板除,两个整数的除法仍然是整数,即使除不尽也是整数,只取整数部分
        • 取余运算%,10%3=1
        • python对整数大小没有限制
    • 字符串和编码
      • ASCII码是1个字节,而Unicode编码通常是2个字节,如果要用到特别偏僻的字符时,就需要4个字节。
      • ASCII中,A是65,0是48
      • 可变长编码UTF-8,节省空间。英文字母1个字节,汉字通常3个字节。
      • 计算机内存中统一是Unicode编码,保存到硬盘或传输时就转换为UTF-8编码
      • python的字符串
        • ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符,
        •  
          >>> ord('A')
          65
          >>> chr(66)
          'B'
        •  Python对bytes类型的数据用带b前缀的单引号或双引号表示:x=b'ABC',要注意区分'ABC'b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。encode()和decode()的用法,具体见网站
        • 要计算str包含多少个字符,可以用len()函数,如果换成byteslen()函数就计算字节数。
        • 申明.py文件使用的UTF-8编码# -*- coding: utf-8 -*-,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码。
      • 格式化
        • 在Python中,采用的格式化方式和C语言是一致的,用%实现
        •  
          >>> 'Hello, %s' % 'world'
          'Hello, world'
          >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
          'Hi, Michael, you have $1000000.'
        • 占位符,
          %d整数
          %f浮点数
          %s字符串
          %x十六进制整数
        • 如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串,如果字符串中有百分号%,则用百分号转义,%%
        • format(),格式化字符串
        • strbytes互相转换时,需要指定编码。最常用的编码是UTF-8
    • 使用list和tuple
      • 列表list,可以随时添加和删除其中的元素。len()可得到list元素个数。索引从0开始,classmates[0],最后一个索引是len(classmates)-1,获取最后一个元素,可以用-1来做索引,classmates[-1],类推到-2,-3,,,
      • classmates = ['Michael', 'Bob', 'Tracy']
      • 往list中添加,删除,替换元素
        • classmates.append('Adam')追加元素到末尾
        • classmates.insert(1,'Jack')添加元素到索引1的位置
        • classmates.pop()删除末尾的元素,删除指定位置索引i处的元素,用pop(i)
        • 替换某处元素的值,可以直接赋值对应的索引位置,classmates[1]='han'
      • list的元素类型可以不同,元素甚至可以是另一个list,但是用len()测list长度时,内部的list类型的元素只算一个长度,此时list可以看做一个二维数组
      • tuple,元组。但是tuple一旦初始化就不能修改了
      •  
        classmates = ('Michael', 'Bob', 'Tracy')
      • 注意:
        • list定义时,用的中括号[],而tuple用的圆括号(),空的tuple类型变量,t=()即可
        • 定义一个只有1个元素的tuple,如果写t=(1)这时,实际括号为运算括号,代码为赋值t的作用,而要定义一个真正的tuple,需要加一个逗号,消除歧义,t=(1,)
        • 另外,tuple里面的元素若是一个list,则内部的list元素仍然可以修改。
    • 条件判断
      • if语句
        •  
          if <条件判断1>:
              <执行1>
          elif <条件判断2>:
              <执行2>
          elif <条件判断3>:
              <执行3>
          else:
              <执行4>
        •  
          if x:
              print('True')
        • 只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False
      • 再议input
        • 注意:input()返回的数据类型是strstr不能直接和整数比较,要输入整数时,必须先把str转换成整数
        • s = input('birth: ')
          birth = int(s)
          if birth < 2000:
              print('00前')
          else:
              print('00后')
        • elif的用法,注意拼写是elif
        • 另,python中幂运算,用**n表示n次方
    •  循环
      • for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句
        • 如果要计算1-100的整数之和,从1写到100有点困难,幸好Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为list
        • names = ['Michael', 'Bob', 'Tracy']
          for name in names:
              print(name)
        •  
          >>> list(range(5))
          [0, 1, 2, 3, 4]
      • while循环
        • 只要条件满足,就不断循环,条件不满足时退出循环
        •  
          sum = 0
          n = 99
          while n > 0:
              sum = sum + n
              n = n - 2
          print(sum)
      • break
        • 在循环中,break语句可以提前退出循环
      • continue
        • 在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。
        • 判决是否相等,用==
      • Ctrl+C强制退出程序
    • 使用dict和set
      • dict
        • 全称dictionary,其它语言中也称map,使用键-值(key-value)存储,查找速度快。
        • >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
          >>> d['Michael']
          95
        • 要避免key不存在的错误,有两种办法,一是通过in判断key是否存在:
          •  
            >>> 'Thomas' in d
            False
          • 二是通过dict提供的get()方法,如果key不存在,可以返回None(注意:返回none时不显示结果,如下面代码第一行),或者自己指定的value:例如下面,当‘Thomas’这个key不存在时,返回设定的值-1
          • >>> d.get('Thomas')
            >>> d.get('Thomas', -1)
            -1
        • 要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
          • >>> d.pop('Bob')
            75
        • 注意:
          • dict内部存放的顺序和key放入的顺序是没有关系的。
          • dict中的key必须是不可变对象,即数字、字符串、整数等,而不能是变量x那种
        • dict与list对比:
          • dict有以下几个特点:

            • 查找和插入的速度极快,不会随着key的增加而变慢;
            • 需要占用大量的内存,内存浪费多。
          • 而list相反:

            • 查找和插入的时间随着元素的增加而增加;
            • 占用空间小,浪费内存很少。
            • 所以,dict是用空间来换取时间的一种方法。
      • set
        • set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
        • 要创建一个set,需要提供一个list作为输入集合:

          >>> s = set([1, 2, 3])
          >>> s
          {1, 2, 3}
        • 注意:重复元素在set中自动被过滤:
          >>> s = set([1, 1, 2, 2, 3, 3])
          >>> s
          {1, 2, 3}
        •  通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
          >>> s.add(4)
          >>> s
          {1, 2, 3, 4}
        •  通过remove(key)方法可以删除元素:
          >>> s.remove(4)
          >>> s
          {1, 2, 3}
        •  set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作
      • 再议不可变对象
        • list可变,str不可变,tuple虽然是不变对象,但是tuple的元素可以是list,元素list可变。
  •  
  •  
 
 
 

版权声明:本文为qq_38025771原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。