美文网首页
python学习笔记 - (1)基本数据

python学习笔记 - (1)基本数据

作者: MR_詹 | 来源:发表于2020-08-30 16:24 被阅读0次

    python数据类型

    补充:

    检查数据类型: type(数据)
    num1 = 1.0
    print(type(num1))
     结果:class:int 
    

    格式化输出

    age = 18
    print('我的年龄%d岁'  %age)
    weight = 75.6
    print('我的体重%.2f' %weight)
    
    print(f'我的年龄{age}岁')
    

    数字逻辑运算符

    /// and 所有为1,结果才为1
    /// 如果有一个不是1,则取最后一个非1的数
    a = 1 and  2     结果是2
    a = 1 and 0     结果是0
    
    /// or 所有是0,结果才为0
    /// 如果有不是0的,则以带个非0为结果
    a = 1 or 0 结果是 1
    a = 0 or 2 结果是 2
    
    

    判断语句

    格式
    if 判断条件:
    空格 执行语句1
    空格 执行语句2
    
    if a==1:
        print('a 等于 0')
        print('a 等于 0')
    

    随机数

    ///导入random模块
    import random
    /// 调用函数randint(开始,结束)
    /// 是包括开始和结束的范围
    b = random.randint(0,2)
    /// 结果可能是0、1、2
    print(b)
    
    

    三目运算符

    格式
    条件成立执行的表达式 if 条件 else 条件不成立执行的表达式
    
    a = 1
    b = 2
    
    c = a if a>b else b
    /// 结果是 2
    print(c)
    

    for 循环

    name = 'Liven'
    for chart in name:
        print(chart)
    

    else 与 循环配合使用,else 下方缩进的代码指的是当循环正常结束之后要执行的代码
    break跳出循环就是非正常结束
    continue跳过某次循环执行完毕,也是正常结束

    while 条件:
        条件成立重复执行的代码
    else:
        循环正常结束之后要执行的代码
    
    
    for 临时变量 in 序列:
      重复执行代码
    else:
      循环正常结束之后要执行的代码
    
    

    字符串

    • 下标
    /// 通过下标(索引)获取某个值
    name = 'Liven'
    /// 结果 L
    print(name[0])
    
    • 切片
    切片是指对操作的对象截取其中一部分的操作。
    字符串、列表、元组都是支持切片
    格式
    序列[开始位置下标:结束位置下标:步长]
    
    注意:
    * 不包括结束位置下标对应的数据,正负证书均可
    * 步长是选取间隔,正负整数均可,默认步长是1,可以不写
    
    num = '0123456'
    /// 结果:234
    /// 步长默认是1,如果要求步长为1 ,可以不写
    print(num[2:5:1])
    print(num[2:5])
    /// 结果:24
    print(num[2:5:2])
    
    /// 如果开始位置下标没写,那么默认就是0 
    /// 结果:01234
    print(num[:5])
    
    /// 如果结束位置下标没写,那么默认是到序列的末尾
    /// 结果:23456
    print(num[2:])
    
    /// 开始下标和结束下标都没写,则是获取序列全部
    /// 结果:0123456
    print(num[:])
    
    /// 步长设置负数:表示倒叙选取
    /// 结果:2
    print(num[2:3:1])
    /// 结果:3
    print(num[3:2:-1])
    
    /// 结果就是反相:6543210
    print(num[::-1])
    
    /// 下标-1表示最后一个数据,依次向前类推
    /// 结果:345
    print(num[-4:-1])
    
    /// 下标取负 同时 步长也取负数
    /// 结果为空
    /// 分析:开始位置-4到结束位置-1,结果是345
    /// 但是如果步长取负数-1,那么就是从相反的反向截取字段,但是与开始位置到结束位置的方向相反,导致截取为空
    print(num[-4:-1:-1])
    
    /// 结论:
    /// 如果选取方向(下标开始位置到结束位置的反向) 和 步长的反向冲突,则无法截取数据
    
    
    • 字符串常用操作方法:查找、修改、判断
    #查找
    字符串查找就是查找子串在字符串中的位置或出现的次数
    
    * find() : 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置,否则返回-1
    * rfind() 跟 find()相似,只是方向不同,rfind()是从右到左开始查找
    格式:
    字符串.find(子串,开始位置下标,结束位置下标)
    //// 注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找
    
    * index(): 作用与语法都跟find()一样,不同的是,当在字符串中找不到对应的子串,那么find()方法是返回-1,而index()则会报异常
    * rindex() 跟 find()相似,只是方向不同,index()是从右到左开始查找
    
    * count():在字符串中查找子串的个数
    格式:
    字符串.count(子串,开始位置下标,结束位置下标)
    
    num = 'hello world and itcast and itheima and Python'
    /// 结果: 12
    print(num.find('and'))
    /// 结果: 12
    print(num.index('and'))
    /// 结果:3
    print(num.count('and'))
    
    
    # 修改
    修改,指的是通过函数的形式修改字符串中的数据
    
    * replace(): 替换
    replace函数有返回值,返回值是修改后的字符串
    格式:
    字符串序列.replace(旧子串,新子串,替换次数)
    /// 注意:替换次数,如果查出子串出现次数,则替换次数为该子串出现的次数
    
    old_str = 'hello world and itcast and itheima and Python'
    new_str = old_str.replace('and','he')
    print(new_str)
    
    
    * split():按照指定字符分割字符串,返回一个列表
    格式:
    字符串序列.split(分割字符,num)
    /// 注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个
    my_str = 'hello world and itcast and itheima and Python'
    /// 结果:['hello world','itcast','itheima','Python']
    print(my_str.split('and'))
    
    * join():合并列表里面的字符串数据为一个大字符串
    格式:
    字符串.join(多字符串组成的序列)
    /// 结果:aa...bb...cc
    mylist = ['aa','bb','cc']
    new_str = '...'.join(mylist)
    
    
    /// 不常用的操作方法
    title() : 将字符串每个单词首字母转换成大写,其他的字符都是小写
    capitalize() : 将字符串第一个字符转换成大写
    lower() : 将字符串中大写转小写
    upper() : 将字符串中小写转大写
    lstrip() : 删除字符串左侧空白字符
    rstrip(): 删除字符串右侧空白字符
    strip(): 删除字符串两侧空白字符
    
    ljust():返回一个原字符串左对齐,并使用指定字符串(默认空格)填充至对应长度的新字符串
    格式:
    字符串序列.ljust(长度,填充字符)
    mystr = 'hello'
    /// 结果:hello,,,,,
    print(mystr.ljust(10,','))
    
    rjust():右对齐
    center():中间对齐
    

    字符串判断

    * startswith() : 检查字符串是否是以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查
    格式:
    字符串序列.startswith(子串,开始位置,结束位置)
    
    * endswith():检查字符串是否以指定子串结尾
    
    * isalpha() : 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False
    
    * isdigit() : 如果字符串只包含数字则返回True 否则 返回False
    
    * isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否是返回False
    
    * isspace(): 如果字符串只包含空格,则返回True,否是返回False
    

    列表

    * index() 返回指定数据所在位置的下标
    格式:
    列表序列.index(数据,开始位置,结束位置)
    
    * count() 统计指定数据在当前列表中出现的次数
    格式:
    列表序列.count(数据,开始位置,结束位置)
    
    * len() 访问列表长度
    格式:
    len(列表序列)
    
    * in 判断指定数据在某个列表序列是否存在,如果在就返回True,否则返回False
    name_list = ['Tom','Liven','James']
    /// 返回结果:True
    print('Tom' in name_list)
    
    * not in 判断指定数据不再某个列表序列,如果不在就返回True,否则返回False
    
    
    * append() 列表结尾追加数据
    格式:
    列表序列.append(数据)
    
    * extend() 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
    格式:
    列表序列.extend(数据)
    name = ['Tom','Lily','Rose']
    /// 结果:['Tom','Lily','Rose','L','i','v','e','n']
    name.extend(‘Liven’)
    /// 结果:['Tom','Lily','Rose', 'May','Lucy']
    name.extend(['May','Lucy'])
    
    * insert() 指定位置新增数据
    格式:
    列表序列.insert(位置下标,数据)
    
    * del 删除(可是删除整个列表,也开始删除列表的某个目标)
    格式:
    del 目标
    
    name = ['Tom','Lily','Rose']
    /// 删除整个列表name
    del name
    /// 删除name列表的第一个元素
    del name[0]
    
    * pop() 删除指定下标的数据,如果不指定下标,默认删除最后一个数据(无论安装下标删除还是删除最后一个,pop函数都会返回这个被删除的数据 )
    name.pop()
    
    * remove(数据) 
    name.remove('Tom')
    
    * clear() 清空列表
    name.clear()
    
    * 修改指定下标的数据
    name[0] = 'aaa'
    
    * reverse() 倒序
    name.reverse()
    
    * sort() 排序
    格式:
    列表序列.sort(key=none,reverse=True降序 False升序(默认))
    
    numlist = [1,5,3,2,6]
    /// 结果:[1,2,3,5,6]
    print(numlist.sort())
    
    * copy() 复制列表
    oldlist = ['1','2']
    newlist = oldlist.copy()
    
    

    列表的循环

    name_list = ['Tom','Lili']
    a = 0
    while a < len(name_list) :
      print(name_list[a])
      a += 1
    
    for name in name_list :
      print(name)
    
    

    元组
    元组与列表的区别:元组内的数据是不能修改的,列表则可以
    元组特点:
    定义元组使用小括号,且逗号隔开各个数据,数据是可以不同类型
    /// 多个数据元组
    t1 = (10,20,30)
    /// 单个数据元组
    t2 = (10,)
    /// 注意:如果定义的元组只有一个数据,那么这个数据后面也最好添加逗号,否则数据类型为唯一的这个数据的数据类型

    t3 = (10,)
    /// 结果:typle
    print(type(t3))
    t4 = (20)
    /// 结果: int
    print(type(t4))

    元组数据不支持修改,只支持查找

    • 按下标查找
    • index()
    • count()
    • len()

    字典

    * 字典查找
    字典序列[key]
    /// 如果当前查找的key存在则返回对应的值,否则报错
    
    * get()
    格式
    字典序列.get(key,默认值)
    /// 注意:如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None
    
     * keys()
    格式:
    字典序列.keys()
    
    * values()
    格式:
    字典序列.values()
    
     * items()
    格式:
    字典序列.items()
    
    dict1 = {'name':'Tom','age','20'}
    
    for key in dict1.keys():
      print(key)
    
    for value  in dict1.values():
      print(value)
    
    for item in dict1.items():
    /// item是元组
      print(item)
    
    for key,value in dict1.items():
      print(f'{key} = {value}')
    
    

    集合

    集合的特点:去重、无序(不支持下标操作)
    
    创建集合使用{}或set(),但是如果要创建空集合只能使用set(),因为{}
    用来创建字典
    
    * add() 增加数据
    s1 = {20,30}
    s1.add(100)
    /// 因为集合有去重的功能,所以,当向集合追加的数据是当前集合已有数据的话,则不进行任何的操作
    
    * update() 增加的数据是序列
    s1.update([100,200])
    
    * remove() 删除集合中指定的数据,如果数据不存在则报错
    
    * discard() 删除集合号中指定的数据,如果数据不存在也不会报错
    
    * pop() 随机删除集合中的某个数据,并返回这个数据
    
    

    公共操作


    image.png

    数据类型转换

    * tuple() 转换成元组
    
    
    * list() 转换成列表
    
    
    * set() 转换成集合
    
    

    推导式

    * 列表推导式
      �作用:用一个表达式创建一个有规律的列表或控制一个有规律列表
    
      例子:创建0~10的偶数列表
    方法 一:
     list1 = [i for i in range(0,10,2)]
    print(list)
    方式二:
    list1 = [i for i in range(10) if i % 2 ==0]
    
    多个for循环实现列表推导式
    例子:创建如下列表
    [(1,0),(1,1,),(1,2),(2,0),(2,1),(2,2)]
    
    list1= [(i,j) for i range(1,3)  for j in range(3)]
    
    
    * 字典推导式
    作用:快速合并列表为字典或提取字典中目标数据
    
    例子:创建一个字典,字典key是1-5数字,value是这个数字的2次方
    dict1 = {i:i**2 for i in range(1,6)}
    
    例子:将两个列表合并成一个字典
    list 1 = ['name','age','gender']
    list2 = ['Tom',10,'man']
    
    dict1 = {list[i] : list[2] for i in range(len(list1))}
    
    例子:提取字典中目标数据
    提去上述电脑数量大于等于200的字典数据
    counts = {'MBP':268,'HP':125,'DELL':201,'Lenovo':199}
    
    counts1 = { key:value for key,value in counts.items() if value >= 200}
    
    
    * 集合推导式
    
    
    
    
    

    相关文章

      网友评论

          本文标题:python学习笔记 - (1)基本数据

          本文链接:https://www.haomeiwen.com/subject/vyrqsktx.html