zoukankan      html  css  js  c++  java
  • Python基础(中篇)

    本篇文章主要内容:数据类型的常用方法,条件语句,循环语句

    在开始正篇之前我们先来看看上一篇留下的题目。

    题目:

    定义一个字典a,有两个键值对:一个键值对key是可乐,value是18;另一个键值对key是python,value是列表形式的1,2,3,4,5。

    答案:

    a = { "可乐": "18", "python": [1,2,3,4,5] }
    

    一、字符串的常用方法

    1.1 拼接

    示例1(常用):

    a = "可乐"
    b = "爱python"
    c = a + b
    print(c)
    -------------------------------------------------------------------
    输出 ---> 可乐爱python
    

    注意:如果是str和number则需要对number转换,通过str(number)转换。

    示例2(极少使用):

    a = "可乐" "爱python"
    print(a)
    -------------------------------------------------------------------
    输出 ---> 可乐爱python
    

    1.2 切片(截取)

    用法灵活,需要对上一篇的索引已有深刻的理解。

    语法:

    string[start : end : step]
    注意:左开右闭

    示例1:截取python

    a = "可乐爱python"
    b = a[3:]
    print(b)
    -------------------------------------------------------------------
    输出 ---> python
    

    示例2: 截取可爱yhn

    a = "可乐爱python"
    b = a[::2] # 或者 b = a[0::2]
    print(b)
    -------------------------------------------------------------------
    输出 ---> 可爱yhn
    

    1.3 获取字符串长度

    获取字符串长度由于比较少用,可乐就不写了,需要了解的可以私聊。

    语法:

    len(string)

    示例:

    a = "可乐爱python"
    b = len(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 9
    

    1.4 分割字符串

    通过split分割字符串,常用于将字符串转换成列表。

    语法:

    str.split(sep,maxsplit)
    str.rsplit(sep,maxsplit)

    - sep:分割符,默认为None。
    - maxsplit:最大分割数,默认无限制。
    - split:从左往右分割。
    - rsplit:从右往左分割 。
    需要深入了解split,rsplit使用方法的,可以看源代码注释,或者私聊可乐。

    示例1:

    a = "可乐,爱,python"
    b = a.split(",",1)
    print(b)
    -------------------------------------------------------------------
    输出 ---> ['可乐', '爱,python']
    

    示例2:

    a = "可乐,爱,python"
    b = a.rsplit(",",1)
    print(b)
    -------------------------------------------------------------------
    输出 ---> ['可乐,爱', 'python']
    

    1.5 合并字符串

    可以将可迭代对象通过join()方法合并成字符串。(可迭代对象:后续可乐会在高级部分进行讲解,并自定义我们想要的可迭代对象)在这里大家可以通俗的理解为可迭代对象就是str,dict,list,tuple

    语法:

    str.join(iterable)

    示例1(常用):

    a = ["可乐", "爱", "python"]
    b = "".join(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 可乐爱python
    

    示例2(不常用):

    a = {"可乐": "嘿嘿", "很帅": "是的"}
    b = "".join(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 可乐很帅
    

    1.6 检测子字符串在字符串的索引

    ps:当子字符串不存在时,会报错!可以利用这个特性来判断子字符串是否存在

    语法:

    str.index(sub[, start[, end]]) -> int
    - sub:要检测的子字符串。
    - start:检测的开始位置索引,默认从头开始。
    - end:检测的结束位置索引,默认到最后。
    可灵活使用,需要深入了解的可私聊可乐或者看源码注释。

    示例1:

    a = "可乐是可乐呀"
    b = a.index("可乐")
    # b = a.index("可乐", 0, -1)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 0
    

    示例2:

    a = "可乐是可乐呀"
    b = a.index("可了")
    # b = a.index("可了", 0, -1)
    print(b)
    -------------------------------------------------------------------
    抛出异常 ValueError
    

    1.7 指定字符串开头或者结尾

    startswith()指定某个字符串开头。如果,返回True反之返回False
    endswith()指定某个字符串结尾。如果,返回True反之返回False

    语法:

    str.startswith(prefix[, start[, end]]) -> bool
    str.endswith(suffix[, start[, end]]) -> bool

    - prefix/suffix: 要检测的子字符串。
    - start: 检测的开始位置索引, 默认从头开始。
    - end: 检测的结束位置索引, 默认到最后。

    示例1:

    a = "可乐是可乐呀"
    b = a.startswith("可乐")
    # b = a.startswith("可乐",0,-1)
    print(b)
    -------------------------------------------------------------------
    输出 ---> True
    

    示例2:

    a = "可乐是可乐呀"
    b = a.endswith("可乐")
    # b = a.endswith("可乐",0,-1)  输出True
    print(b)
    -------------------------------------------------------------------
    输出 ---> False
    

    思考一下为什么b=a.endswith("可乐",0,-1)的时候输出True, 可乐会在下篇进行解释, 或者私聊可乐。

    1.8 字符串转全部大写

    语法:

    str.upper()

    示例:

    a = "abc"
    b = a.upper()
    print(b)
    -------------------------------------------------------------------
    输出 ---> ABC
    

    1.9 字符串转全部小写

    语法:

    str.lower()

    示例:

    a = "ABC"
    b = a.lower()
    print(b)
    -------------------------------------------------------------------
    输出 ---> abc
    

    1.10 字符串格式化

    语法:

    ① %
    ② format()
    ③ f-string

    注意:第一种方式官方并不太建议, 详细请看官方文档

    第三种f-string格式化方式需要python3.7以上的版本!!!

    示例1:

    a = "可乐"
    b = "hello %s" % a
    print(b)
    -------------------------------------------------------------------
    输出 ---> hello 可乐
    

    示例2:

    a = "可乐"
    b = "hello {}".format(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> hello 可乐
    

    示例3:

    a = "可乐"
    b = f"hello {a}"
    print(b)
    -------------------------------------------------------------------
    输出 ---> hello 可乐
    

    1.11 编解码

    概念:

    编码: 将字符串编码成字节。
    解码: 将字节解码成字符串。

    语法:

    编码: str.encode(encoding,errors)
    解码: str.decode(encoding,errors)
    - encoding: 需要编码或者解码的格式, 一般为utf-8, 或者gbk。
    - errors: 错误的处理方式, 默认是strict, 遇到非法字符抛出异常, 默认即可。
    后续可乐会专门加一篇ASCII和Unicode和UTF-8和gbk的文章。

    示例1:

    a = "可乐"
    b = a.encode()
    print(b)
    -------------------------------------------------------------------
    输出 ---> b'xe5x8fxafxe4xb9x90'
    注:输出的是以16进制形式的字符编码值
    

    示例2:

    a = b'xe5x8fxafxe4xb9x90'
    b = a.decode()
    print(b)
    -------------------------------------------------------------------
    输出 ---> 可乐
    

    二、数字型常用方法

    2.1 浮点型转整型

    语法:

    int()

    示例:

    a = 1.1
    b = int(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 1
    

    2.2 保留小数位并四舍五入

    语法:

    round(number, digits)
    - digits: 四舍五入时要使用的小数位数,默认为0。

    示例:

    a = 3.1415
    b = round(a, 3)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 3.15
    

    三、列表常用方法

    注意: 想要熟悉掌握列表常用方法, 必须熟悉上一篇的索引, 以及可变类型。

    3.1 将其他类型转换成列表

    语法:

    list(iterable)
    可迭代对象iterable字符串部分已经备注, 这里可乐就不备注了。

    示例:

    a = (1, 2, 3)
    b = list(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> [1, 2, 3]
    

    3.2 指定位置插入数据

    语法:

    list.insert(index,obj)

    示例:

    a = [1, 2, 3]
    a.insert(1, "可乐")
    print(a)
    -------------------------------------------------------------------
    输出 ---> [1, '可乐', 2, 3]
    

    3.3 在列表末尾添加数据

    语法:

    list.append(obj)

    示例:

    a = [1, 2, 3]
    a.append("可乐")
    print(a)
    -------------------------------------------------------------------
    输出 ---> [1, 2, 3, '可乐']
    

    3.4 将其他可迭代对象追加到列表中

    语法:

    list.extend(iterable)

    示例:

    a = [1, 2, 3]
    a.extend((4, 5, 6))
    print(a)
    -------------------------------------------------------------------
    输出 ---> [1, 2, 3, 4, 5, 6]
    

    3.5 修改指定索引的数据

    语法:

    list[index] = obj

    示例:

    a = [1, 2, 3]
    a[0] = "可乐"
    print(a)
    -------------------------------------------------------------------
    输出 ---> ['可乐', 2, 3]
    

    3.6 删除指定索引的数据

    语法:

    ① del list[index]
    ② list.pop(index)

    示例1:

    a = [1, 2, 3]
    del a[2]
    print(a)
    -------------------------------------------------------------------
    输出 ---> [1, 2]
    

    示例2:

    a = [1, 2, 3]
    a.pop(2)
    print(a)
    -------------------------------------------------------------------
    输出 ---> [1, 2]
    

    3.7 删除第一个出现的指定数据

    语法:

    list.remove(value)

    示例:

    a = [1, 2, 3, 2]
    a.remove(2)
    print(a)
    -------------------------------------------------------------------
    输出 ---> [1, 3, 2]
    

    3.8 清空列表

    语法:

    list.clear()

    示例:

    a = [1, 2, 3]
    a.clear()
    print(a)
    -------------------------------------------------------------------
    输出 ---> []
    

    3.9 统计列表长度

    语法:

    len(list)

    示例:

    a = [1, 2, 3]
    b = len(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 3
    

    3.10 统计数据在列表中出现的次数

    语法:

    list.count(value)

    示例:

    a = [1, 2, 3, 2]
    b = a.count(2)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 2
    

    3.11 列表排序

    语法:

    list.sort(key,reverse)
    - key: 指定排序方式的函数。
    - reverse: 等于True降序, 等于False升序, 默认False。

    示例1:

    a = [1, 2, 3, 2]
    a.sort()
    print(a)
    -------------------------------------------------------------------
    输出 ---> [1, 2, 2, 3]
    

    示例2:根据字典的 key=可乐 进行升序排序

    def hello_list(e):
        return e["可乐"]
    
    a = [{"可乐": 18}, {"可乐": 26}, {"可乐": 20}]
    a.sort(key=hello_list)
    print(a)
    -------------------------------------------------------------------
    输出 ---> [{'可乐': 18}, {'可乐': 20}, {'可乐': 26}]
    

    备注:函数在下一篇可乐会详细讲解, 示例2只是演示key的作用。

    3.12 列表反转

    语法:

    list.reverse()

    示例:

    a = [1, 2, 3, 4]
    a.reverse()
    print(a)
    -------------------------------------------------------------------
    输出 ---> [4, 3, 2, 1]
    

    四、元组的常用方法

    4.1 创建空元组

    语法:

    ① tuple()
    ② ()

    示例:

    a = tuple()
    # a = ()
    print(a)
    -------------------------------------------------------------------
    输出 ---> ()
    

    4.2 通过索引访问元组的值

    语法:

    tuple[index]

    示例:

    a = (1, 2, 3, 4)
    b = a[0]
    print(b)
    -------------------------------------------------------------------
    输出 ---> 1
    

    4.3 删除元组

    语法:

    del tuple

    示例:

    a = (1, 2, 3, 4)
    print(a)
    del a
    print(a)
    -------------------------------------------------------------------
    第一行输出 ---> (1,2,3,4)
    第二行抛出 NameError
    

    注意: 上篇可乐已经明确表示元组是不可变类型, 所以对于元组来说不存在修改和切片。因为当你修改元组时, 实际情况是会在内存中开辟新的内存地址用来存放新的元组

    可乐用代码给大家演示一下:

    a = (1, 2, 3, 4)
    print(f"原元组的值是{a}")
    print(f"原元组的内存地址是{id(a)}")
    b = a[:2]
    print(f"修改后元组的值是{b}")
    print(f"修改后元组的内存地址是{id(b)}")
    

    备注: python通过内置函数id()来访问值的内存地址

    输出结果如图:

    五、字典的常用方法

    想要熟练掌握字典的常用方法,需要对可乐上一篇字典的key-value(键值对)的格式比较熟悉,字典的key必须是不可变类型,value可以是任何类型

    5.1 创建空字典

    语法:

    ① dict()
    ② {}

    示例:

    a = {}
    #a = dict()
    print(a)
    -------------------------------------------------------------------
    输出 ---> {}
    

    5.2 获取字典的值

    语法:

    ① dict[key]
    ② dict.get(key, default=None)

    示例1:

    a = {"name": "可乐", "age": 18}
    print(a["name"])
    -------------------------------------------------------------------
    输出 ---> 可乐
    

    示例2:

    a = {"name": "可乐", "age": "18"}
    b = a.get("name")
    print(b)
    -------------------------------------------------------------------
    输出 ---> 可乐
    

    注意: 在第一种方式中, 如果key不存在, 会抛出异常;第二种方式如果key不存在, 则返回默认值。

    5.3 修改字典的值

    语法:

    ① dict[key] = value
    ② dict.update(new_dict)

    示例1:

    a = {"name": "可乐", "age": 18}
    a["name"] = "是可乐呀"
    print(a)
    -------------------------------------------------------------------
    输出 ---> {'name': '是可乐呀', 'age': 18}
    

    示例2:

    a = {"name": "可乐", "age": 18}
    a.update({"python": "hello"})
    print(a)
    -------------------------------------------------------------------
    输出 ---> {'name': '可乐', 'age': 18, 'python': 'hello'}
    

    注意: 如果指定的key在字典中不存在, 那么就是增加一个键值对。

    5.4 计算字典元素个数

    语法:

    len(dict)

    示例:

    a = {"name": "可乐", "age": 18}
    b = len(a)
    print(b)
    -------------------------------------------------------------------
    输出 ---> 2
    

    5.5 获取字典所有的key

    语法:

    dict.keys()

    示例:

    a = {"name": "可乐", "age": 18}
    b = a.keys()
    print(b)
    -------------------------------------------------------------------
    输出 ---> ["name","age"]
    

    获取字典所有的value

    语法:

    dict.values()

    示例:

    a = {"name": "可乐", "age": 18}
    b = a.values()
    print(b)
    -------------------------------------------------------------------
    输出 ---> ['可乐', '18']
    

    5.7 获取字典的key-value

    语法:

    dict.items()

    示例:

    a = {"name": "可乐", "age": "18"}
    b = a.items()
    print(b)
    -------------------------------------------------------------------
    输出 ---> [('name', '可乐'), ('age', '18')]
    

    六、条件语句

    在python中条件语句就是三个关键字 if elif else

    语法:

    if 判断条件:
     执行代码
    elif 判断条件:
     执行代码
    else:
     执行代码

    说明: 在上述的条件判断中是互斥的, 也就是说要么执行if的代码, 要么执行elif的代码, 要么执行else的代码, 并且只要其中一个符合条件, 那么程序便不会判断后面的条件了。这部分可以优化代码。

    示例1:

    a = "可乐"
    if a == "可乐":
        print("可乐1")
    elif a == "可乐":
        print("可乐2")
    else:
        print("什么都不是")
    -------------------------------------------------------------------
    输出 ---> 可乐1
    

    示例2:

    a = "可乐"
    if a == "可乐":
        print("可乐1")
    if a == "可乐":
        print("可乐2")
    if a == "可乐":
        print("可乐3")
    -------------------------------------------------------------------
    输出 ---> 可乐1
    输出 ---> 可乐2
    输出 ---> 可乐3
    

    七、循环语句

    python中循环包括while循环for循环
    while循环:表示给定一个判断条件为True时, 进入循环体, 为False跳出循环体;
    for循环:表示会重复的执行语句;
    死循环:表示程序一直在循环体当中跳不出来。一定要避免死循环!!!

    7.1 while循环

    语法:

    while 判断条件:
     执行代码

    示例:

    a = 0
    while a < 10:
        print(a)
        a += 1
    -------------------------------------------------------------------
    输出 ---> 0-9
    

    7.2 for循环

    语法:


    ① for iterating_var in iterable:
       执行代码
    ② for iterating_var in range(start,stop,step)
       执行代码

    - start是开始数据
    - stop是结束数据
    - step是步长

    示例1:

    for i in [1, 2, 3]:
        print(i)
    -------------------------------------------------------------------
    输出 ---> 1~3
    

    示例2:

    for i in range(1, 10, 2):
        print(i)
    -------------------------------------------------------------------
    输出 ---> 1 3 5 7 9
    

    7.3 循环控制语句

    语法:

    ① break
    ② continue

    说明:
    - break会终止循环体,程序不再往下循环;
    - continue结束本次循环,程序继续下一次的循环。
    注意: 如果是嵌套循环, 那么break终止的是当前所在的循环体, 而不是整个循环嵌套体

    示例1:

    for i in [1, 2, 3]:
        for j in [4, 5, 6]:
            if j == 5:
                break
            print(j)
    -------------------------------------------------------------------
    输出 ---> 4 4 4
    解释一下: 在程序中是一个循环嵌套, 当j==5时, 内层循环会终止进入外层循环的下一次循环。
    

    示例2:

    for i in [1, 2, 3]:
        for j in [4, 5, 6]:
            if j == 5:
                continue
            print(j)
    -------------------------------------------------------------------
    输出 ---> 4 6 4 6 4 6
    解释一下: 在程序中是一个循环嵌套, 当j==5时, 内层循环会跳出本次循环, 进入内层循环的下一次循环。
    

    到此我们在本篇中学习了python数据类型的常用方法,条件语句和循环语句。各位道友在学习过程中遇到疑问可以私聊可乐,可乐看到了都会一一回复的。

    那么下一篇可乐将和大家看一下python当中的异常处理,函数和模块

    按照惯例,可乐为各位道友准备了一个简单的题目来巩固本篇的内容:

    变量 a = {"name": "可乐", "age": 18, "hello": "python"},现在要将 a 所有的 key 放入到 b列表 中,所有的 value 放到 c列表 中。
    提示:利用字典的方法和循环结合,while和for都可以实现。

    在下一篇中可乐会留下答案。

    < END>

    在这里插入图片描述

  • 相关阅读:
    与答辩有关资料
    SpringBoot技术优点
    【知识库】-简单理解CrudRepository接口中的方法
    【知识库】-通俗理解OAuth2.0协议用于第三方登陆
    毕业设计介绍所用
    JavaWeb_(视频网站)_七、推荐模块1
    JavaWeb_(视频网站)_六、分页模块1
    JavaWeb_(视频网站)_五、视频模块2 辅助功能
    JavaWeb_(视频网站)_五、视频模块1 视频上传
    JavaWeb_(视频网站)_四、博客模块2
  • 原文地址:https://www.cnblogs.com/kele-develop/p/14229221.html
Copyright © 2011-2022 走看看