python-数据类型(上)

查看数据类型:type(2**32)

数字:

int(整形):
在32位机器上,整数的位数是32位,取值范围为-2**31~2**31-1;
在64位机器上,整数的位数是64位,取值范围为-2**63~2**63-1
long(长整形):
python的长整数没有指定位宽
python3里只有整型的概念,没有长整型。如果整数发生溢出,python会自动将整数数据转换为长整数
float(浮点型):
3.23,52.3E-4
complex(复数):-5+4j,j是虚数

布尔值:

真或假,1或0

字符串:

name = "my \tname is {name} and i am {age} old" #\t代表tab键

print(name.capitalize()) #首字母大写
print(name.count("a")) #a的数量
print(name.center(50,"-")) #打印50个字符,不够的用"-"补上,name放中间
print(name.endswith("ex")) #判断一段字符串以什么结尾
print(name.expandtabs(tabsize=30)) #把tab键转成多少个空格
print(name.find("name")) #字符串中name的索引
print(name[name.find("name"):]) #字符串的切片
print(name.format(name = 'alex',age = 25))
print(name.format_map({'name': 'alex','age': 25}))
print(name.isalnum()) #是不是阿拉伯数字(包含英文字符和1,2...)
print('ab12'.isalpha()) #全是字母为true
print('12'.isdecimal()) #是否是十进制
print('12'.isdigit()) #是否是整数
print('_1A'.isidentifier()) #判断是不是一个合法的标识符
print('a 1A'.islower()) #判断是不是小写
print('a 1A'.isnumeric()) #是不是只有数字
print(' '.isspace()) #是不是空格
print('My Name Is '.istitle()) #每个首字母大写
print('My Name Is '.isprintable()) #能不能打印,字符串里用不着,tty file,drive file不能打印
print('My Name Is '.isupper()) #是不是大写
print('+'.join(['1','2','3']))
print(name.ljust(50,'*')) #长度50,不够后面用*补上
print(name.rjust(50,'-')) #长度50,不够前面用-补上
print('Alex'.lower()) #变小写
print('Alex'.upper()) #变大写
print('\nAlex\n'.lstrip()) #去掉左边的空格和回车
print('\nAlex\n'.rstrip()) #去掉右边的空格和回车
print(' Alex\n'.strip()) #去掉左边和右边的空格和回车
p = str.maketrans("abcdef",'123456')
print('alex li'.translate(p))
print('alex li'.replace('l','L')) #替换
print('alex li'.replace('l','L',1)) #替换1个
print('alex li'.rfind('l')) #找到最后面那个值的下标
print('al ex li'.split()) #按空格分
print('al ex lil'.split('l')) #按l分
print('1+2+3+4'.split('+'))
print('1+2\n+3+4'.splitlines()) #按换行来分
print('Alex Li'.swapcase()) #大小写互换
print('alex li'.title()) #每个首字母大写
print('alex li'.zfill(50)) #长度不够的前面补0

字典操作:

字典一种key-value的数据类型
字典的特性:
dict是无序的
key必须是唯一的,so天生去重

info = {
  'stu1101':"TengLian Wu",
  'stu1102':"LongZe LuaLa",
  'stu1103':"XiaoZe MaLiya",
}
print(info)
print(info['stu1101']) #百分百确定有这个key再用这个方式查找
print(info.get('stu1104')) #查找,有就返回,没有None
print('stu1103' in info) #判断在不在
info['stu1101']="武藤兰" #存在,修改value 值
info['stu1104']="CangJingKong" #不存在,增加
del info['stu1101'] #删除
info.pop('stu1102') #删除
info.popitem() #随机删除
print(info)

多级字典嵌套:

av_catalog={
"欧美":{
  "www.youporn.com":["很多免费的,世界最大的","质量一般"],
  "www.pornhub.com": ["很多免费的,也很大", "质量比youporn高点 "],
  "letmedothistoyou.com": ["多是自拍,高质量图片很多", "资源不多,更新慢"],
  "x-art.com": ["质量很高,真的很高", "全部收费,屌比请绕过"],
  },
"日韩":{
  "tokyo-hot": ["质量怎样不清楚,个人已经不喜欢日韩范了", "听说是收费的"],
  },
"大陆": {
  "1024": ["全部免费,真好,好人一生平安", "服务器在国外,慢"],
  }
}
av_catalog['大陆']['1024'][1]="可以在国内做镜像"
print(av_catalog)

info = {
  'stu1101':"TengLian Wu",
  'stu1102':"LongZe LuaLa",
  'stu1103':"XiaoZe MaLiya",
}
print(info.values())
print(info.keys())
info.setdefault('stu1104',"haha")
info.setdefault('stu1101',"haha") #有这个key就返回,没有创建
print(info)

info = {
  'stu1101':"TengLian Wu",
  'stu1102':"LongZe LuaLa",
  'stu1103':"XiaoZe MaLiya",
}
b = {
  'stu1101':"Alex",
  1:3,
  2:5
}
info.update(b) #有交叉就更新,没有创建
print(info)
c = dict.fromkeys([6,7,8],"test") #初始化一个新的字典,三个key共享一个value,一个内存地址,即使修改,value也都一样
print(c)
print(info.items()) #把字典转成了列表

循环:

info = {
  'stu1101':"TengLian Wu",
  'stu1102':"LongZe LuaLa",
  'stu1103':"XiaoZe MaLiya",
}
for i in info:
  print(i,info[i]) #高效
for k,v in info.items(): #把字典转成列表的过程
  print(k,v)

三级菜单:

data = {
  '北京':{
    "昌平":{
      "沙河":["oldboy","test"],
      "天通苑":["链家地产","我爱我家"]
    },
    "朝阳":{
      "望京":["奔驰","陌陌"],
      "国贸":["CICC","HP"],
      "东直门":["Advent","飞信"]
    },
    "海淀":{}
    },
  '山东':{
    "德州":{},
    "青岛":{},
    "济南":{},
    },
  '广东':{
    "东莞":{},
    "常熟":{},
    "佛山":{}
    }
}
while True:
  for i in data:
    print(i)
  choice = input("一级菜单请选择进入>>:")
  if choice in data:
    while True:
      for i2 in data[choice]:
        print("\t",i2)
      choice2 = input("二级菜单请选择进入>>:")
      if choice2 in data[choice]:
        while True:
          for i3 in data[choice][choice2]:
            print("\t\t", i3)
          choice3 = input("三级菜单请选择进入>>:")
          if choice3 in data[choice][choice2]:
#            while True:
            for i4 in data[choice][choice2][choice3]:
              print("\t\t\t",i4)
            choice4 = input("最后一层,按b返回>>:")
            if choice4 == "b":
#              break
              pass
          if choice3 == "b":
            break
      if choice2 == "b":
        break

data数据如上

exit_flag = False
while not exit_flag:
  for i in data:
    print(i)

  choice = input("请选择进入1>>:")
  if choice in data:
    while not exit_flag:
      for i2 in data[choice]:
        print("\t",i2)
      choice2 = input("请选择进入2>>:")
      if choice2 in data[choice]:
        while not exit_flag:
          for i3 in data[choice][choice2]:
            print("\t\t", i3)
          choice3 = input("请选择进入3>>:")
          if choice3 in data[choice][choice2]:
            for i4 in data[choice][choice2][choice3]:
              print("\t\t\t",i4)
            choice4 = input("最后一层,按b返回>>:")
            if choice4 == "b":
              pass
            elif choice4 == "q":
              exit_flag = True
          if choice3 == "b":
            break
          elif choice3 == "q":        
            exit_flag = True
      if choice2 == "b":
        break
      elif choice2 == "q":
        exit_flag = True

猜你喜欢

转载自www.cnblogs.com/peiya/p/11969597.html