python基础概要

632 阅读5分钟

数据类型内置方法理论

* 在我们之前所学的每一种数据类型本身都是含有一系列的操作方法,内置方法是其中最多的(自带的功能)
* 在python中数据类型调用内置方法的统一句式为:句点符
* 'name'. 字符串内置方法
   绑定字符串的变量名.字符串内置方法
   str.字符串内置方法
* 数据类型的内置方法比较多 如果想要掌握  不要光靠死记硬背 需要花时间运用到代码中  熟能生巧

整型内置方法与操作

* 类型转换(将其他数据类型转换成整型)
 int(其他数据类型)
 浮点型可以直接转 字符串必须满足内部是纯数字才可以

* 进制数转换
     十进制转其他进制 
     print(bin(100))  0b1100100
     print(oct(100))   0o144
     print(hex(100))   0x64

数字的开头如果是0b则为二进制 0o则为八进制 0x则为十六进制

 其他进制转十进制
 print(int(0b1100100))
 print(int(0o144))
 print(int(0x64))
 
 print(int("0b1100100", 2))
 print(int("0o144", 8))
 print(int("0x64", 16))
 
* python自身对数字的敏感度较低(精确度低)
  python这门语言其实真的一点都不厉害 主要是因为它背后有太多大佬
  如果需要精准的计算需要借助于模块numpy.....
  

浮点型内置方法与操作

 * 类型转换 float (其他数据类型)
   字符串里面可以允许出现一个小数点 其他都必须是纯数字 
   

字符串内置方法与操作

* 类型转换  str(其他数据类型)
  可以转换任意数据类型(只需要在前后加引号即可)
* 必须要掌握的方法
1 索引取值(起始位置0开始 超出范围加引号即可) 

image.png

2 切片操作

image.png

3 修改切片方向

image.png

4 统计字符串首尾指定的字符

image.png

5 移除字符串首尾指定的字符

image.png

6 切割字符串指定的字符

image.png

7 字符串格式化输出

image.png

* 字符串需要了解的方法

  1大小写相关

image.png

包括获取用户输入的验证码 将用户输入的验证码和当初产生的验证码统一转换或小写在比对

image.png

2 判断字符串中是否纯数字

image.png

3 替换字符串中指定的内容

image.png

4 字符串的拼接

image.png

5统计指定字符串出现的次数

image.png

6 判断字符串的开头或者结尾

image.png

7其他方法补充

image.png

列表内置方法及操作

* 类型转换list(其他数据类型)
* 能够被for循环的数据类型都可以转成列表
    print(list('hello'))
    print(list({'name': 'kevin', 'pwd': 123}))
    print(list((1, 2, 3, 4)))
    print(list({1, 2, 3, 4, 5}))
* 需要掌握的方法
 11 = [111, 222, 333, 444, 555, 666, 777, 888]
 1 索引取值  正负数

image.png

2 切片操作 

image.png

3 间隔数 方向

image.png

4 统计列表中数据值的个数

image.png

5数据值的修改

image.png

6列表添加数据值
方式1:尾部追加数据值

image.png

方式2:任意位置插入数据值

image.png

方式3:扩展列表 合并列表

image.png

* 删除列表数据
方式1:通用的删除关键字del

image.png

方式2:remove

image.png

方式3:pop

image.png

image.png

* 排序
ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]

image.png

* 统计列表中某个数据值出现的次数

image.png

* 颠倒列表顺序

image.png

可变类型与不可变类型

字符串在调用内置方法之后并不会修改自己 而是产生了一个新的结果 如何查看调用方法有没有新的结果 可以在调用该方法的左侧添加变量名和赋值符号

res = s1.strip('$')

image.png

列表在调用内置方法之后修改就是自身 并没有产生一个新的结果

image.png

  • 可变类型:值改变 内存地址不改变

image.png

  • 不可变类型:值改变 内存地址肯定变

image.png

2.基于字符串充当数据库完成用户登录(基础练习)
   data_source = 'jason|123'  # 一个用户数据
   获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
   
   

image.png

3.基于列表充当数据库完成用户登录(拔高练习)  # 多个用户数据
   data_source = ['jason|123', 'kevin|321','oscar|222']
   

image.png

4.利用列表编写一个员工姓名管理系统
    输入1执行添加用户名功能
    输入2执行查看所有用户名功能
    输入3执行删除指定用户名功能
    '''分析 用户输入的不同 可以执行不同的代码'''
    ps: 思考如何让程序循环起来并且可以根据不同指令执行不同操作
    提示: 循环结构 + 分支结构

拔高: 是否可以换成字典或者数据的嵌套使用完成更加完善的员工管理而不是简简单单的一个用户名(能写就写不会没有关系)

 先定义一个空的数据库 模拟存储用户名
name_list=[]
 添加循环
while True:
    # 添加功能展示
    print("""
    1 添加用户名功能
    2 查看所有用户名功能
    3 执行删除指定用户名功能
    """)
    # 获取用户输入的指令
    choice = input('请输入指令>>>:').strip()
    # 判断用户指令
    if choice =='1':
        username = input('请输入您的用户名>>>:').strip()   # 获取用户输入的用户名
        # 判断当前用户名是否已存在
        if username in name_list:
            print('用户名已存在')
        else:
            name_list.append(username)
            print(f'用户:{username}添加成功')
    elif choice=='2':
        # 查看所有用户 本质就是打印列表
        for name in name_list:
            print(f"""
            ----------info------------
            username:{name}
            --------------------------
            """)
    elif choice =='3':
        # 获取想要删除的用户民
        target_name = input('请输入想要删除的用户名').strip()
        if target_name not in name_list:
            print('没有此人')
            continue
            # 直接删除
        name_list.remove(target_name)
        print(f'用户名{target_name}删除成功')
    else:
        print('会不会好好写')