博客园

4、数据类型

4、数据类型

一、for循环补充

  # for + range
  for i in range(10,3,-1):  # 顾头不顾尾
    print(i)>>>>10 9 8 7 6 5 4
  # for+ enumerate
  i,name = (0,"egon")
  for i ,name in enumerate(["egon","tom","jack"]):
    print(i , name)>>>>(0,egon)  (1,tom)  (2,jack)
  for x in enumerate({"k1":111,'k2':2222,'k3':3333}):
    print(x)  >>>>>>(0,'k1') (1,'k2') (2,'k3')

二、可变不可变类型

  ## 不可变类型:值改变,但是 id 也会改变,证明是产生了新的值,原值并没有变化  
  x = 10
  print(id(x)) >>>>>>2857250744912
  x =11
  print(id(x)) >>>>>>2857250744944       # id随着值改变了 
  ## 可变类型:值改变,但是id不变,证明就是在改变原值,原值是可变类型
  l = [111,222,333]
  print((id(l))
  l[0] = 66666666
  print(id(l))>>>>>>id 地址相同,就不打了 费时间

三、数字类型:

============== int 的基本使用 ================

1、用途:记录年龄、个数、号码、等级等整数相关的
2、 定义方式:
  age = 18 相当于  age = int(18)
    print(age,type(age))>>>>>>18,<class,int>
int 数据类型转换:可以把纯数字组成的字符串转成整型
  res = int("                         18                  ")   # 注意   18 中间不能有空格!!!
  print(res,type(res)) >>>>18,<class,int>
3、常用操作 + 内置的方法
数字运算+ 比较运算

================= 类型总结====================

================== float 的基本使用===============

1、用途:记录薪资,体重,身高等小数类型

2、定义方式:
  salary = 3.3   相等于  salary = float(3.3)

 # float 数据类型转换:可以把小数组成的字符串转成浮点型
  res = float('      3.3       ')
  print(res,type(res))>>>>>>>>3.3 <class,float>
#3、常用操作+内置方法
#数学运算+比较运算               和整型int一样

===float 类型总结=
和 int 一样
补充了解:
LONG类型


print(bin(11))
print(oct(11))
print(hex(11))

x=1-2j
print(type(x))
print(x.real)
print(x.imag)

四、字符串类型
==基本使用=
1、用途:记录描述事物的状态
2、定义方式:在" " , ' ' , """ """ ,''' '''' 内包含一串字符

  # msg = "abc"  # msg = str("abc")    
  #print(type(msg))>>>>>>>>>>>class,str

注意

      # 1、上述引号定义出来的都是 str  类型,单引号,双引号在python中没有区别。
      #2、三引号可以存放多行字符串
      #3、引号的嵌套:外层双引号,内层只能用单引号

数据类型转换:str 可以把任意类型都转成字符串类型

  #res = str([1,2,3])
  #print(res,type(res)) >>>>>> 1,2,3<class,str>

补充

# print("abc\nddd")
# print(r"abc\nddd")
# print("abc\\nddd")
# print('abc\nddd')

# file_path=r'D:\new\a.py'
# file_path='D:\\new\\a.py'
#
# print(file_path)

3、常用操作+内置方法

    #优先掌握的操作:(5*)
    #1、按索引取值(正向取+反向取):只能取
    #msg = ‘hello world "
    #print(msg[0],type(msg[0]))
    #print(msg[-1])
    #msg[0] = 'H' # 字符串只能取,不能改

2、切片(顾头不顾尾,步长)

# msg = 'hello woeld"
# res = mas[1:7]>>>>>>>>1 2 3 4 5 6 
#res = msg[1:7:2]>>>>>>>>>1 3 5
res = msg[:]
print(res)>>>>>>>>>>>>只有  :  相当于复制

3、长度len

# msg = "hello world"
#print(len(msg))>>>>>>11

4、成员运算 in和not in

msg = ’hello world‘
print(’he‘ in msg)>>>>>>True
print("he" not in msg)>>>>>>>>>>Fase

5、移除空白strip

msg = "              hello     "
res = msg.strip()
print(res)>>>>>>>>>>>hello
orint(msg)>>>>>>>>>>                     hello
msg = " +_*%hello******$#
print(msg.strip("+_*%#$)>>>>>>>>>>>>hello   stirp() 可移除符号,不过只能移除两边的

6、切分 split

msg = "egon:123:3000"
print(msg[0:4])>>>>>egon
res = msg.split(":",1)
print(res)>>>>>>>["egon",'123:3000]

7、循环

#for  x in msg:
  print(x)

需要掌握的操作

1、.strip(移除两端空格或指定符号) . lstrip(移除左边。。。) .rstrip(移除右边)
2、.lower ()全部变为小写 . upper()全部变为大写
3.startwith()判断xx是不是值开头 .endwith()判断xx是不是值的结尾
4、format()的三种玩法:


        # msg = "my name is %s my age is %s"%("liu",18)
        ## msg = "my name is {name} my age is {age}".format(age= 18,name="liu")
        ### msg = "my name is {1} my age is  {0}.format(18,'liu')

补充了解       


          # msg = "my name is {name} my age is {age}".format(**{"age":18,"name":"egon"})
          # msg = "my name is %(name)s my age is %(age)s" % {"age":18,"name":"egon"}
          # print(msg)

          # name = "egon"
          # age = 18
          # print(f"my name is {name} my age is {age}")   

5、split()切分,可指定以什么为切分 和 切分的次数 从左切分, rsplit() 从右切分
6、jion()和 split()相反 用一次split在用jion 值又回到了原来的样子
7、replace()替换,可指定需要替换的参数和用来替换的参数
8、isdigit() 用来判断用户输入的是否是数字
 
(了解即可)***

      #1、find,rfind,index,rindex,count
      # msg = 'hello el abc'
      # res=msg.find("el")
      # res=msg.rfind("el")

      # res=msg.index("el")
      # res=msg.rindex("el")

      # res=msg.find("xxx")
      # res=msg.index("xxx")  # 找不到则报错
      # print(res)

      2、center,ljust,rjust,zfill

      # print('hello'.center(50,'*'))
      # print('hello'.ljust(50,'*'))
      # print('hello'.rjust(50,'*'))
      # print('hello'.zfill(50))  # 'hello'.rjust(50,'0')

      3、captalize,swapcase,title

      # print("hello world".capitalize())
      # print("aAbB".swapcase())
      # print("hello world".title())

      4、is数字系列
     在python3中
      # num1=b'4' #bytes
      # num2=u'4' #unicode,python3中无需加u就是unicode
      # num3='四' #中文数字
      # num4='Ⅳ' #罗马数字

      # bytes、unicode
      # print(num1.isdigit()) # True
      # print(num2.isdigit()) # True
      # print(num3.isdigit()) # False
      # print(num4.isdigit()) # False

      # unicode
      # print(num2.isdecimal()) # True
      # print(num3.isdecimal()) # False
      # print(num4.isdecimal()) # False

      # unicode、中文数字、罗马数字
      # print(num2.isnumeric()) # True
      # print(num3.isnumeric()) # True
      # print(num4.isnumeric()) # True

      5、is其他

      name="EGON123"
      # print(name.isalpha())  # 只能由字母组成
      # print(name.isalnum())  # 字母或数字组成
      # print(name.islower())
      # print(name.isupper())
      # name="               "
      # print(name.isspace())
      # name="Hello world"
      # print(name.istitle())

五、列表类型:
  =列表的基本使用============
  1、用途:按照位置存放多个任意值
  2、定义方式:在[ ]内用逗号分隔开多个任意类型的值

                  # l = [11,11.33,"xxx",[11,22,33]] # l = list(...)
                  # print(type(l))

list数据类型:把可迭代的类型转成列表,可以被for 循环遍历的类型都是可迭代的

                  # res = list("hello")
                  # res = list({"k1":111,'K2':2222})
                                           # print(res)
                  # print(list(range(1000)))

3、常用操作+内置方法
优先掌握的操作

      1、按照索引存取值(正向存取+反向存取):可存可取
      2、切片(顾头不顾尾,步长)
      3、长度 len()
      4、成员运算in和 not in
      5、追加 .append() 插在后面
      6、插入 .insert() 可插入指定索引任意位置
      7、删除 通用删除del [ ] 和 .pop() 指定索引删除,不指定默认删最后一个

类型总结=

存一个值 或 多个值
有序 或 无序
可变 或 不可变(1,可变:值变,id 不变。 可变==不可hash 2,不可变:值变 id 就变 不可变 == 可 hash
 

posted @ 2020-12-22 22:16  小刘学python  阅读(86)  评论(0编辑  收藏  举报