Python 基础

1. 安装python环境

  • cmd里面输入python(已经安装如下显示)

  • 在这里插入图片描述

  • 设置全局变量
    在这里插入图片描述

2. python基础

2.1 python变量

命名规范:
    不能以数字、特殊字符开头,不能以关键字命名
    英文单词、下划线、数字的组合
        first_name_123=''
    大驼峰
        FirstName
    小驼峰
        firstName
第一次出现变量名称就是定义,后许多次出现变量名称就是多次赋值

2.2 python数据类型

  1. number

    • int <class ‘int’>

      num=100
      print(num)
      # 查看类型
      print(type(num))
      
    • float <class ‘float’>

      float_1=3.14234
      print(float_1)
      print(type(float_1))
      
    • bool 要么true,要么false

      # 布尔 bool
      print(bool(float_1))
      print(0)
      
  2. 字符串

    • 单引号

    • 双引号

    • 三引号

    • 区别:单引号和双引号都是保存单行的数据,三引号保存多行的数据

      name='马可波罗'
      name="王昭君"
      name="""李白"""
      # name=''''''
      str_1="""妲己说:
      
      来陪妲己玩耍吧!
      """
      print(str_1)
      
      
      str_num="12345"
      print(type(str_num))    # <class 'str'>
      
    • 特殊索引

      # 索引下标示例
      str_2="好看的皮囊千篇一律,有趣的灵魂万里挑一"
      print(str_2)
      
      # 单个字符提取 正序:0,1,2...    倒序:-1,-2,-3...
      # str_2[下标索引数值]
      print(str_2[0])	# 好
      print(str_2[-1])	# 一
      
      # 范围提取
      # str_2[起始下标:结束下标-1]  左闭右开[)
      print(str_2[0:3])   # 好看的	[0:3-1]
      print(str_2[:])     # 打印的是所有的内容
      print(str_2[::])    # 打印的是所有的内容
      print(str_2[:5])    # 好看的皮囊
      print(str_2[-2:])   #挑一
      
      # 步长 step
      print(str_2[::2])   # 好的囊篇律有的魂里一    跳着输出
      print(str_2[::-1])  # 一挑里万魂灵的趣有,律一篇千囊皮的看好   步长负值,控制正反序
      res=str_2[0:5]
      print(res[::-1])    # 囊皮的看好
      

2.3 python列表

使用[]来标识

  • 创建列表方法

    # 创建方法一:
    list_1=list
    print(list_1)   # <class 'list'>
    print(type(list_1)) # <class 'type'>
    # 创建方法二:
    list_2=[]
    print(list_2)   # []
    print(type(list_2)) # <class 'list'>
    
  • 创建一个有内容的列表

    list_3=['女娲','吕德华','瑶瑶','奕星','芈月']
    # 查看元素个数 len()
    print(len(list_3))  # 5
    
  • 查找,列表进行范围提取,返回的还是列表

    print(list_3[1])    # 吕德华
    print(list_3[-2:])  # ['奕星', '芈月']
    
  • 更改元素 先定位查找到这个位置,然后在重新赋值

    list_3[1]='吕布'
    print(list_3)   # ['女娲', '吕布', '瑶瑶', '奕星', '芈月']
    
  • 批量更改

    list_3[0:2]=['李白','王昭君']
    print(list_3)   # ['李白', '王昭君', '瑶瑶', '奕星', '芈月']
    list_3[0:2]='李' # 批量更改等号左边和右边元素个数相同
    print(list_3)   # ['李', '瑶瑶', '奕星', '芈月']
    
  • 添加元素

    • append(需要添加的元素) 只添加到最后一位

         list_3.append('孙悟空')
         list_3.append(1000)
         list_3.append(100.123)
         list_3.append(True)
         list_3.append([1,2,3])
         print(list_3)   # ['李', '瑶瑶', '奕星', '芈月', '孙悟空', 1000, 100.123, True, [1, 2, 3]]
      
      • insert(添加的位置,添加的元素) 可以在任意位置进行添加

        list_3.insert(1,'钟馗')
        print(list_3)   # ['李', '钟馗', '瑶瑶'...
        
      • extend(需要填入可迭代内容) 同时添加多个元素

        list_4=[[],123,True]
        list_4.extend(list_4);
        print(list_4)   # [[], 123, True, [], 123, True]
        
      • 拼接

        list=list_3+['马可波罗','鲁班','伽罗']
        print(list)
        # list_3+=[]
        # print(list_3)
        
    • 删除

      • remove(需要删除的元素):根据列表的元素删除

         list_3.remove('李')
         print(list_3)
        
      • del:根据列表的下标位置删除元素

        del list_3[-6]
        print(list_3)
        # del list_3  # 默认删除整个列表,内存中没有list_3变量名
        # print(list_3)   # NameError: name 'list_3' is not defined
        
      • clear():清空

        list_3.clear()
        print(list_3)
        
    • 排序

      list_5=[3,9,5,2,6,8,1,0,7]
      # list_5.sort()   # 默认从小到大进行排序
      # print(list_5)
      list_5.reverse()
      print(list_5)   # [7, 0, 1, 8, 6, 2, 5, 9, 3]
      # 排序的方法 sort
      list_5.sort(reverse=False)  # reverse=True:从大到小
      print(list_5)   # [0, 1, 2, 3, 5, 6, 7, 8, 9]
      
      # 英文排序
      list_6=['hello','world','apple','yellow','red']
      list_5.sort()   # 根据英文单词首字母排序,如果首字母相同,则排序下一个字母
      print(list_6)   #['hello', 'world', 'apple', 'yellow', 'red']
      
      # 中文排序
      list_7=['你','我','他','啊']
      list_7.sort()
      print(list_7)   # ['他', '你', '啊', '我']
      

2.4 元组

常用的存储单元

  • 特点:元组内的元素是不可以改变的

  • 创建

    # 创建    方法一
    tuple_1=tuple()
    print(tuple_1)
    print(type(tuple_1))    # <class 'tuple'>
    
    # 创建方法二
    tuple_2=()
    print(tuple_2)
    print(type(tuple_2))    # # <class 'tuple'>
    
  • 查找

    # 查找
    tuple_3=('貂蝉','杨玉环','王昭君','西施')
    print(tuple_3[0])
    print(tuple_3[0:3]) # 元组范围提取,返回的也是元组类型
    # 在当前这个元组中,是不能更改,删除,添加
    
  • 转换类型

    # 元组转化为列表
    list_1=list(tuple_3)
    print(list_1)   # ['貂蝉', '杨玉环', '王昭君', '西施']
    list_1.append('妲己')
    print(list_1)
    
    # 列表转化为元组
    tuple_3=tuple(list_1)
    print(tuple_3)  # ('貂蝉', '杨玉环', '王昭君', '西施', '妲己')
    
    # 进行拼接
    tuple_3+=('唐伯虎',)   # 在只有一个元素的时候,后面要加一个英文逗号
    # tuple_3=tuple_3+()
    print(tuple_3)  # ('貂蝉', '杨玉环', '王昭君', '西施', '妲己', '唐伯虎')
    

2.5 set集合

去重、无序的

  1. 创建方式

    # 创建方式
    set_1=set()
    print(set_1)    # <class 'set'>
    print(type(set_1))
    
    set_2={'周一','周二','周三','周四','周五'}
    print(set_2)    # {'周四', '周三', '周一', '周五', '周二'}
    
  2. 删除

    set_2.remove('周五')
    print(set_2)
    res=set_2.pop()
    print('弹出的内容是: ',res)   # 弹出的内容是:  周三
    print(set_2)    # {'周四', '周二', '周一'}
    
  3. 添加

    set_2.add('周六')
    print(set_2)    # {'周三', '周一', '周二', '周六'}
    
  4. 更改

    set_2.update('周天')
    print(set_2)    # {'周四', '周六', '周天', '周三', '周一'}
    set_2.update(['周天'])	# {'周', '天', '周天', '周二', '周六', '周四', '周三'}
    set_2.update(['周八','周十'])
    print(set_2)    # {'周八', '周二', '周', '周六', '天', '周十', '周一', '周四', '周天'}
    

2.6 字典

​ 他是一个特殊的容器,{key:value,key:value} key是唯一的,value可以存储任意类型

  • 创建字典

    # 方法一:
    dict_1=dict()
    # 方法二:
    dict_2={}
    
    dict_3={"name":"小鲁班","武器":"大炮",100:[1,2,3]}
    print(dict_3)
    
  • 查找

    # 可以把key当成索引下标
    print(dict_3['name'])
    print(dict_3['hobby'])  # KeyError: 'hobby'  如果字典没有这个key,查找会报错
    
  • 更改:首先确定字典中有这个key,再赋值就是更改value

    dict_3[100]='123'print(dict_3)
    
  • 添加:在这个字典中没有这个key,再赋值就是添加键值对

    dict_3['hobby']='上王者'
    print(dict_3)
    
  • 删除

    # del方法
    del dict_3[100]
    print(dict_3)# clear():清空dict_3.clear()print(dict_3)
    
  • 获取所有的key

    res=dict_3.keys()   # 返回的是一个可迭代对象
    res=list(res)   # 转化为列表print(res[0])
    
  • 获取所有的value

    all_value=dict_3.values()
    print(type(all_value))  # <class 'dict_values'>
    
  • 获取所有的key和value

    all_items=dict_3.items()   # 返回的格式  [(key,value),(key,value)]
    print(all_items)
    

2.7 字符串补充

  1. 切割

    # y=str1[0:4]
    # m=str1[5:7]
    # d=str1[-2:]
    # print(d)
    
    res=str1.split('-')
    print(res)  # ['2021', '11', '14']
    str2="9:57:10"
    print(str2.split(':'))  # ['9', '57', '10']
    
  2. 去除收尾空格

    str1="      hello  world     "
    # print(str1[6:-5])
    # 去除两边空格
    res=str1.strip()
    print(res)  # hello  world
    # 去除左边空格换行
    lres=str1.lstrip()
    print(lres)     # hello  world
    # 去除右边空格
    rres=str1.rstrip()
    print(rres)     #       hello  world
    
  3. 替换

    str1="我是:xxx"
    print(str1)
    res=str1.replace('xxx','张三').replace('我','你')
    print(res)  # 你是:张三
    
    str1='     hello world     '
    res=str1.replace(' ','')
    print(res)      # helloworld
    
  4. 格式化输出 %s:传递转化为字符串 %d:传递转化为整数 %f:传递转化为小数

    str1="我是:%s"
    print(str1)     # 我是:%s
    print(str1%'法外狂徒·张三')          # 我是:法外狂徒·张三
    print(str1%'尼古拉斯·赵四')           # 我是:尼古拉斯·赵四
    print(str1%['生活有判头'])           # 我是:['生活有判头']
    
    str1="我的薪资是:%d美元"
    print(str1)     # 我的薪资是:%d美元
    print(str1%1000)        # 我的薪资是:1000美元
    print(str1%999.789)     # 我的薪资是:999美元
    
    str1='我的房间面积是:%f平米'
    print(str1)     # 我的房间面积是:%f平米
    print(str1%150)     # 我的房间面积是:150.000000平米
    print(str1%150.23)  # 我的房间面积是:150.230000平米
    print(str1%150.123456778)   # 我的房间面积是:150.123457平米
    
  5. fomat

    str1='我是:{},我在:{},我喜欢:{}'
    print(str1)     # 我是:{},我在:{},我喜欢:{}
    print(str1.format('李四','河南','跑步'))  # 我是:李四,我在:河南,我喜欢:跑步
    

2.8 运算

  1. 运算符

    +(加)、-(减)、*(乘)、/(除)、%(取余)、//(取商)

    print(1//2)   # 0
    print('==='*10)     # ==============================
    print(['张三']*10)
    print(['张三','李四']*10)
    
  2. 关系运算

    < > >= <= == != 只返回两个值True或False

  3. 逻辑运算

    and(一假都假) or(一真都真) not(取反)

2.9 分支结构

​ 1. if 条件表达式:

​ 代码块…

​ else

​ 代码块2…

​ 条件表达式:只返回两个值

​ True:正数与负数、其他的所有不为空的字符串、列表、元组、set集合、字典

​ False:0、None、null、其他所有为空的字符串、列表、元组、set集合、字典

# 正确
a=1
if a<2:
    print('正确')
else:
    print('错误')
# 正确    
if [0]:
    print('正确')
else:
    print('错误')    
# 错误
if 1<2 and 3<2:
    print('正确')
else:
    print('错误')
# 正确
if [] or [0]:
    print('正确')
else:
    print('错误')
# 正确
if not [] :
    print('正确')
else:
    print('错误')
  1. 多重判断

    if 条件表达式:

    ​ 代码块

    elif 条件表达式:

    ​ 代码块

    elif 条件表达式:

    ​ 代码块

    else:

    ​ 代码块

    # 第一个条件表达式正确
    if True:
        print('第一个条件表达式正确')
    elif True:
        print('第二个条件表达式正确')
    elif True:
        print('第三个条件表达式正确')
    else:
        print('第四个条件表达式错误')
    
  2. 嵌套

    a=5
    b=10
    if a<b and a*10<=50:
        a+=10
        b*=5
        if a==b:
            print('正确')
        else:
            print('错误')
    

2.10 循环结构

​ 1. for 自定义变量 in 可迭代对象:

​ 循环体

list_1=['周一','周二','周三','周四','周五','周六','周日']
for i in list_1:
    print(i)
  1. while 循环

    while 条件表达式:

    ​ 循环体

    ​ 结束语句

    a=1
    while a<10:
        print(a)
        a+=1
    
  2. break:结束当前循环

    continue:跳出当前循环,继续下一循环

    list_1=['周一','周二','周三','周四','周五','周六']
    # 周三、周四不打印
    for i in list_1:
        if i=='周三' or i=='周四':
            continue
        print(i)
        
    # 只打印五、六
    a=1
    while a<10:
        a+=1
        if a<5 or a>6:
            continue
        print(a)    
    

2.11 函数

​ 有特定功能,完成指定任务的一段代码块

  1. 为什么使用?
  • 可以隐藏代码的实现
  • 提高代码的复用性
  • 提高代码的可读性、可维护性
  1. 函数的定义:
    ​ del 自定义变量名(参数1,参数2…)
    ​ 函数体
    ​ return
# 创建加法函数功能
def addition(a,b):
    # 使用参数a加上参数b得到结果赋值给c这个变量
    c=a+b
    return c

# 调用函数
print('传入参数')
res=addition(10,20)
print(res)
  1. 参数

    形参:形式上的参数,并没有实际的意义。也可以称之为占位符

    实参:实际的参数值,在调用函数出现

  2. 传递参数的方法

    • 位置传递:按照位置的先后顺序进行传递参数

    • 关键字传递:在调用地方,传递变量值,通过变量名称去定义函数地方找寻,看有没有相对性的关键字,如果无,则报错,如果有,则把变量值赋值给关键字

      res_2=addition(b=30,a=50)
      print(res_2)
      
  3. return

    返回一个值:默认这个值是什么类型就返回什么

    返回多个值:默认是元组类型

    # 创建加法函数功能
    def addition(a,b):
        # 使用参数a加上参数b得到结果赋值给c这个变量
        c=a+b
        return c,c,c	# 返回多个值
    
    # 调用函数
    print('传入参数')
    res=addition(['hello'],['world'])
    print(res)	# (['hello', 'world'], ['hello', 'world'], ['hello', 'world'])--》元组类型
    

    自定义返回值:自定义设定返回类型

    return [c]   
    ....
    print(res)   # [['hello', 'world']]-->自定义
    
  4. 深入理解

    def a():
        print('a函数启动')
        d()
        print('a函数结束')
    def b():
        print('b函数启动')
        print('b函数结束')
    def c():
        print('c函数启动')
        b()
        print('c函数结束')
    def d():
        print('d函数启动')
        c()
        print('d函数结束')
    a()
    
    # 函数从那个地方调用,运行执行完后还会回到调用出
    # 栈:先进后出
    

2.12 类对象

​ 类:类别,物以类聚。有相同属性和相同行为的事物统称为类

​ 对象:在类中的一个具体事例称为对象

​ 实例化:从类生成对象的一个过程

  1. 定义类

    class 自定义名()

    定义属性

    定义行为(类方法、函数)

    # 定义一个学生类
    class Student():
        # 定义属性
        name=""
        age=0
        userid=""
        # 定义行为
        def eat(self):
            # self:谁调用这个方法,谁就是self
            print(self.name,'正在吃饭')
            self.sleep()
        def sleep(self):
            print(self.name,'正在休息')
    # 创建对象
    zhangsan=Student()
    # 对象访问属性
    # 对象名.属性名
    zhangsan.name='张三'
    zhangsan.age=20
    zhangsan.userid='007'
    print(zhangsan.name)
    
    # 对象访问行为方法
    #  对象名.方法名   记得加括号,不加括号意思为查看一些方法信息
    print(zhangsan.eat)
    zhangsan.eat()
    
    # 创建第二个对象
    lisi=Student()
    lisi.name="李四"
    lisi.age=18
    lisi.userid="001"
    lisi.eat()
    

2.13 初始化方法

​ 运行类的第一个启动方法就是初始化方法

​ 即使我们没有写初始化方法,也会默认继承object类的初始化方法

# 创建类
class Student(object):
    def __init__(self,name,age,userid):
        print('我是一个初始化方法')
        # 在类里面构造属性
        self.name=name
        self.age=age
        self.userid=userid

    def eat(self):
        print('正在吃饭')

# 调用类创建对象
zhangsan=Student('张三',20,'007')
print(zhangsan.name)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值