zoukankan      html  css  js  c++  java
  • python学习日记——基本数据类型

    1.运算符

    赋值运算符:

    =  -=  +=   等等

    数学运算符:

    + - * / ** % //

    成员运算符:

    判断某个东西是否在某个东西里面包含

    in     not in

    例如:

    #字符串
    name="飞天小一" #字符: n1="飞" #子序列/子字符串: n2="飞天" if n1 in name: print("success") else: print("fail") #输出为success if n1 not in name: print("success") else: print("fail") #输出为fail

    数据类型:数字、字符串、布尔值(True/False)

    比较运算符:

    布尔值:

      True  真

      False 假

    等于:==

    大于:>

    小于:<

    大于等于:>=

    小于等于:<=

    不等于:!=      或      <>

    逻辑运算符:

    取反:not         例如not True返回False

    且:and

    或:or

    顺序:从前到后一个一个算

    user=”ftxy"
    pwd="123"
    v= user=='ftxy' and pwd='123' or 1==1 and pwd='test'
    print(v)
    #输出True  

    解释:and连接的前面如果是False,就不会判断后面的表达式,直接返回False;or前面连接的如果是True,就不会判断后面的所有内容,直接返回True;所以要自定义顺序的话必须加括号

    2.基本数据类型

    具体方法及属性control+右键查看

    数字(int):

    num=123

    print(num.bit_length())   #输出数字转换为二进制后的位数

    int(str)           将字符串转为数字

    type(object)   查看对象类型

    a='A'
    b=int(a,base=16)     #输出10;含义为将字符串是16进制,将其转化为10进制的整形
    print(b.bit_length) #输出整形所占内存空间的位数

    字符串(str):

    str(object)       强转为字符串

    常用的方法:join、split、find、strip、upper、lower、replace(解释及其他部分方法如下)

    name="ftXy"
    #首字母大写
    print(name.capitalize())
    #全部转换为小写
    print(name.casefold())
    #第一个参数代表要生成的字符串总长度,第二个是填充时候用的字符(若没有默认用空格填充)
    print(name.center(20,"*"))#放中间
    name.ljust(20,"*")  #放左边
    name.rjust(20,"*") #放右边
    #统计字符在字符串中出现的次数(支持子序列,可以定义起始位置)
    print(name.count("f"))
    
    name.encode         编码
    name.decode         解码
    
    判断是否以xxx结尾或开始
    print(name.endswith(""))
    print(name.startwith(""))
    #从字符串中寻找x的位置并返回,可以定义寻找的起始位置;未找到返回-1
    print(name.find("x"))
    
    #字符串变量替换,如下面案例输出为I am ftxy,19
    test="I am {name},{age}"
    print(test.format(name="ftxy",age=19))
    print(test.format_map({name:"ftxy",age:19}))   #传入字典
    
    #占位符替换
    test="I am {0},{1}"
    print(test.format("ftxy",19))
    #判断字符串是否只有数字与字母
    print(name.isalnum())
    #判断字符串是否只有字母,判断是否是数字(常用isdecimal),判断是否是数字(可判断②),判断是否是数字(可判断二)
    print(name.isalpha(),name.isdecimal(),name.isdigit(),name.isnumeric())
    #制作表格,括号中的参数即对字符串进行的分隔数,不足的	填充对应空格
    print(test.expandtabs(5))
    #判断是否可以原样输出;如果存在	这种转译字符则返回False
    name.isprintable()
    name.istitle() #判断是否标题,每个单词首字母都需要大写
    name.title()   #变成标题
    name.isupper()  #判断是否大写
    name.islower()
    name.upper()   #变成大写 
    name.lower()
    "test".join(name) #将name中的字符用test这个分隔符隔开,参数name可以是列表、元组等
    #去除字符串中与传参相同的子序列;移除指定字符串
    name.strip('xy')
    name.rstrip() #从右边开始去除
    name.lstrip()  #从左边开始去除
    #批量替换demo,将name中的f替换为j
    mt=str.maketrans("f","j")
    name.translate(mt)

    name.replace("f","j",1)#将name中的f替换为j,只替换第一个 name.partition() #按照传入参数分隔,不可指定个数,但是能拿到分隔符 name.split() #按照传入参数分隔成列表;默认按照空格分隔,可以指定分隔的个数 #定义方法时,方法中的参数有=的调用时可以不带参数(方法count中,sub参数必须有,start与end参数可以没有) def count(self, sub, start=None, end=None)

    基本操作(其他数据类型也可以用):

    通过索引及下标获取字符串中某一个字符:name[0]

    获取子序列:获取第1到第2个子序列   name[0:2]                      获取第2到最后一个子序列   name[1:-1]

    获取字符串长度:len(str)

    for循环:for 变量名 in 字符串 

    注:字符串一旦创建则会在内存里长期存在,不可修改;一旦修改或拼接,都会重新生成字符串;没人用了才会被回收

    结束整个循环:break

    结束本次循环:continue

    帮助创建数字:range(start,end,步长)

    #打印用户输入内容及索引
    name=input("请输入姓名:")
    length=len(name)
    for i in range(length):
        print(i,name[i])

    列表(list):

    内存中是以链表的形式储存:列表是有序的,元素可以被修改

    创建:li=[1,2,"test"]  #列表中的元素可以是数字、字符串、列表、布尔值、字典、元组等所有类型

    #索引取值
    li[1]
    #切片取值,切片结果也是列表
    li[1:-1]
    #for循环取值
    #while循环取值

    #修改(索引方式修改)
    li[1]=222
    #修改(切片方式修改)
    li[1:2]=222
    #删除(索引方式删除)
    del li[1]
    #删除(切片方式删除)
    del li[1:2]

    支持in  和  not in操作 

    可迭代的对象才能转化为列表:字符串可迭代,所以能转 list(str) ;数字不可迭代,所以不能转换为列表

    列表转字符串需要自己写方法一个一个处理;如果列表中只包含字符串,那么可以"".join(list)进行拼接操作

    li=[]
    #向列表中追加元素,返回值为None
    li.append()
    li.insert(0,99)      #在第0个位置插入元素99
    #清空列表元素
    li.clear()
    #复制
    li.copy()
    #计算元素出现的次数,必须传入value
    li.count(2)
    #通过迭代的方式追加元素,传参为可迭代对象;注意与append的区别
    li.extend()
    #根据传入值获取当前值索引位置,从左边开始找
    li.index()
    #删除某个值并返回删除的值;默认删除最后一个,可以传参指定索引删除
    li.pop()
    #根据元素内容删除
    li.remove()
    #当前列表反转
    li.reverse()
    #列表排序,默认从小到大,倒序需要添加参数reverse=True
    li.sort()

    元组(tuple):

    创建:tu=(111,22,33,"tester")      创建元组时推荐在最后加个逗号;是对列表的补充,不支持增加、删除;元组的第一级元素不能修改

    支持索引取值及切片取值,支持for循环遍历

    元组、列表、字符串  三者间可以相互转换

    方法:tu.count()        tu.index()

    字典(dict):

    创建:info={key:value,key1:value1}       字典是无序的;True在key中时会与1重复

    常用的:keys()        values()       items()    get()

    items()方法用于返回dict的(key,value)元组对的列表

    字典中key值的类型:int、str、tuple、bool——此四种类型可以进行hash操作,所以可以作为key值 ;而列表及字典不能作为key      

    #for循环,默认根据key循环
    for k,v in info.items():
        print(k,v)

    dict.fromkeys(keys,value)
    #根据key获取value,如果key不存在,返回给定值;默认给定值为None
    dic.get("k1","key不存在时返回的默认值")
    #删不掉的时候返回指定默认值
    dic.pop
    ("k1","key不存在时返回的默认值")
    dic.setdefault(key,value)
    dic.update(dic)

    布尔值(bool)

     

     

  • 相关阅读:
    C++中的句柄类
    普林斯顿大学算法课 Algorithm Part I Week 3 自我总结
    普林斯顿大学算法课 Algorithm Part I Week 3 排序的应用 System Sorts
    普林斯顿大学算法课 Algorithm Part I Week 3 重复元素排序
    普林斯顿大学算法课 Algorithm Part I Week 3 求第K大数 Selection
    普林斯顿大学算法课 Algorithm Part I Week 3 快速排序 Quicksort
    普林斯顿大学算法课 Algorithm Part I Week 3 排序稳定性 Stability
    普林斯顿大学算法课 Algorithm Part I Week 3 比较器 Comparators
    普林斯顿大学算法课 Algorithm Part I Week 3 排序算法复杂度 Sorting Complexity
    普林斯顿大学算法课 Algorithm Part I Week 3 归并排序 Mergesort
  • 原文地址:https://www.cnblogs.com/ftxy/p/11706172.html
Copyright © 2011-2022 走看看