Python基础学习笔记

Python学习笔记


学习网站:
廖雪峰的官网Python3教程.
断断续续学习python有一段时间了,想要把自己碎片化的学习整理出来,思维导图的内容主要来自于廖雪峰老师的教程,不涉及到具体的细节,只是方便自己复习。

Python基础

  • Python基础部分主要是基本的数据类型、编码、分支和循环等流程控制语句。
  • 注意事项:
    1. Python程序是大小写敏感的
    2. Python强制用缩进的形式写代码
      在这里插入图片描述

数据类型

简单数据类型
  1. 整数(int)

  2. 浮点数(float)

  3. 字符串(str/string)
    python中字符串操作内容较多,具体参考下文:
    python中字符串操作

  4. 布尔值(bool)

    • 布尔值可以进行+ 、-、*、/ 运算
  5. 空值(None)

  6. 查看变量类型

    type()函数, 例如:a=1; type(a)

    isinstance(100, int) 判断是否为某一数据类型

  7. 类型转换

    a = “12”, int(a), float(a) , str(a)

运算
  • +、-、*、/、**、//(地板除)、%(取余)
  • 运算符的优先级:幂运算 > 正负号 > 算术运算符 > 比较运算符 > 逻辑运算符
练习
  1. print(“hello world”) 打印出的是字符串
  2. print(5+3) 打印出的是运算结果
  3. print(“hello” + " world") 打印出字符串的拼接
  4. print("hello world " * 8) 打印8个hello world print(“hello world\n” * 8) 打印并换行
表达式
  • python会用表达式去计算和返回一个结果
  • 与(and)、或(or)、非 (not)
复杂数据类型
  1. 列表(list)

    • dir(list) 查看列表的内置函数

    • 创建列表:number = [1,2,3,4,5]

    • 创建空列表:empty = []

    • len(number) 查看列表中元素的数量

    • number.append(6) 向列表中添加元素

    • number.extend([9,8]) 向列表中同时添加多个元素

    • number.insert(1, 0) 在指定的位置添加元素,顺序索引是从0开始的

    • number[0] 从列表中取第一个数据,从列表中获取元素:通过元素的索引值从列表中获取元素,列表的索引从0开始。

    • list切片

      # 分片不会改变原列表
      list1 = [1, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8]
      list1[0:6:2]  # 索引下标从0到6,步长为2
      list1[:3] # 从0开始可以不用写
      list1[2:] # 到末尾则最后一个不用写
      list1[:] # 会得到列表的拷贝
      list1[::2] # 取所有,步长为2
      list1[3:-1] # 从索引3取到倒数第一个(倒数第一个取不到)
      list1[::-2] # 逆着取,步长为2
      list1[8:2:-2]  # 逆着取
      list1[-2]  # 索引下标也可以为负数
      list1[4:5] = ['a','b'] # 替换
      
    • list的值list1.count(6) # 统计某一个元素在列表中出现的次数

      # 统计列表中每个元素出现的次数
      for i in set(list1) :
          print(i, list1.count(i))
      
    • list1.pop() 删除列表中的值

    • list1.pop(2) # 删除指定索引位置的元素

    • list1.remove(‘a’) # 删除指定的元素

    • list1.reverse() # 对列表进行反转

    • del(list1[1]) # 删除列表中的元素

    • list1.sort(reverse = True) # 倒序排列

    • list1.sort(reverse = False) # 正序排列

    • list3.index(123) # 查看元素在列表中的位置

    • list3.index(123, 2, 6) # 从指定的位置查询

    • list7 = list6[:]和list8 = list6 这两种方式是不同的

    • 拼接成字符串:"-".join(list1)

    • max(list1) #最大值

    • min(list1) #最小值

    • del(list1) # 删除列表

    • 生成列表

      # 生成元素是1-10的列表
      list1 = []
      for i in range(1,11) :
          list1.append(i)
      print(list1)
      # 列表推导式
      [i for i in range(1,11)]  # 一行代码
      [i+1 for i in range(1,11)] # 表达式
      [i**2 for i in range(1,11)] 
      [i for i in range(1,11) if i%2 == 1] #只取奇数
      [i for i in range(1,11) if (i%2 == 1 and i<7)] #只取奇数
      names = ["a","b","c","d"]
      ["我的名字是:"+name for name in names] #表示最后返回的结果是列表
      
    • 列表的拷贝

      import copy
      list1 = [1,2,3,4,5,6]
      list2 = copy.deepcopy(list1)
      # 两个是不同的列表
      id(list1)
      id(list2)
      
    • 比较操作符

      list1 = [1,2,3]
      list2 = [2,3,4]
      list1 > list2 # 先比较第一个元素,若有结果则不会再判断了
      
    • 逻辑操作符

      list3 = [123, 456]
      (list1 < list2) and (list1 == list3)
      
    • 连接操作符

      list4 = list1 + list2 # 两个列表拼接的结果并没有赋值给任何一个列表
      list1 + "这是一个字符串" # 报错,添加元素到列表不能直接用+号
      
    • 重复操作

      list3 *= 3

    • 成员关系操作

      123 in list3
      'wowo' not in list3
      list5 = [123, [456,789],234]
      456 in list5
      456 in list5[1]
      list5[1][1] # 列表取值
      
    • 数值交换

      # 数值交换 a,b = b,a
      list2 = ['a','b','c','d']
      list2[0],list2[1] = list2[1],list2[0]
      
    • 高级排序 sort()和sorted()

    my_list =[5,1,3,7,6]
    my_list.sort() # 会改变原列表
    my_list
    
    my_list2 =[5,1,3,7,6]
    sorted(my_list2) #不会改变原列表,作为一个返回值返回
    my_list2
    # sorted还可以对字符串排序
    str1 = ['a','b','c']
    sorted(str1) # 字典序,从小到大排序
    sorted(str1, reverse=True) # 字典序,从大到小排序
    str2 = ['aaa','bb','c','dddd']
    sorted(str2, key=len) #不按照字典序进行排序了,用key指定的函数排序
    str3 = ['aaa','C','BB','dddd']
    sorted(str3, key=str.lower) # 先转小写后再排序
    # key是排序的依据:用key后面的函数对原始的list元素处理完之后,作为排序的依据
    
  2. 元组(tuple)

    tuple1 = (1,2,3,4,5,6,7)

    • tuple1[1] # 通过下标取值

    • tuple1[2:5] # 元组切片,参数list

    • 元组创建后不能被修改,tuple2[1] = 3会报错

    • temp = (1) # 注意这样创建的不是元组,是一个int值 type(temp)

    • temp = (1,) # 确保创建的是元组 同 temp = 1,

    • temp2 = 2,3,4 # 不加括号也是元组

    • temp = () #创建一个空元组

    • 元组可通过+号添加元素

      temp = ('a','b','c','d','e','f')
      temp = temp[:2] + ('wowo',) +temp[2:]
      # temp只是一个标签
      
    • del temp 删除元组

  3. 字典(dict)

    • key/value 键值对

      prices = {"apple":8, "banana":3,"orange":6}
      type(prices) # 查看参数类型
      prices["apple"] # 根据key取value
      prices["pig"] # 不存在的key会报错
      prices.keys() # 取出所有的key
      prices.values() # 取出所有的值
      "pig" in prices # 返回False
      for fruit,price in prices.items():  # 遍历
          print(fruit,price)
      # 字典推导式
      data_list = [1,2,3,4,5,6]
      # 普通遍历
      dic = {}
      for num in data_list:
          dic[num] = num**2
      # 推导式(效率高些)
      {num:num*2 for num in data_list}
      
  4. 集合(set)

    • set(names) 去除重复元素,会按照字母顺序排序
序列

列表、元组、字符串都是序列,特点:

tuple1 = (1,2,34,56,7,89)

  1. 可以通过索引得到每个元素

  2. 默认索引值总是从0开始

  3. 可以通过分片的方法得到一个范围内的元素的集合

  4. 有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)

  5. list() 把一个可迭代对象转换为列表

  6. tuple() 把一个可迭代的对象转换为元组

  7. str(obj) 把obj对象转换为字符串

  8. 使用max(tuple1 )或者min时要求序列的类型是统一的

  9. sum(tuple1 ) 、sum(tuple1 , 1) 必须要是数值

  10. sorted(tuple1) # 排序

  11. reversed(tuple1) # 翻转 返回的是迭代器对象

  12. list(reversed(tuple1))

  13. enumerate(tuple1) # 枚举

  14. list(enumerate(tuple1)) # 索引值变成元组

  15. 打包

    a = [1,2,3,4,5,6,7,8]
    b = [4,5,6,7,8,9]
    zip(a,b)
    list(zip(a,b)) # 成对打包
    

流程控制语句

循环结构
for循环
test = "abcdfed" 
for i in test:
	print(i, end= ' ')  # end用于分割
	
names = ['a','b','c','d']
for index,name in enumerate(names):
	print("名字"+name+","+"编号是"+str(index))

range()函数用于生成一个列表:list(range(5)),range()函数不包含结尾的数

for i in range(5):
    print(i)
for i in range(2,5):
    print(i)

range函数设置步长:

for i in range(1,9,2):
    print(i)
while循环
i = 0
while i<10:
	print("开始报数啦"+ str(i))
	i += 1
i = 0
while True:
	i +=1
	if i%3 == 0:
		continue
	print(i)
    if i > 8:
    	break
分支结构
if…elif…else
x,y = 4,5
if x < y :
    small = x
else :
    small = y
age = 50
if age <= 30 :
    print("年轻”)
elif age <= 50:
	print("依旧年轻")
else :
    print("心态年轻")
条件表达式(三元操作符)
small = x if x< y else y
断言(assert)

assert 3 > 4 断言一般用来在程序中设置检查点

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值