python基础数据类型

字符串

# s = "al1ex is a gay and Wu傻sir is A gay too"

# s1 = s.capitalize() # 把首字母变成大写
# print(s1)

# s2 = s.lower() # 小写
# print(s2)

# s3 = s.upper()  # 大写
# print(s3)

# s4 = s.swapcase() # 大小写互换
# print(s4)

# s2 = "БBß"  # 俄美德
# print(s2)
# print(s2.lower())
# print(s2.casefold())

# s5 = s.title() # 把每个单词的首字母大写
# print(s5)

# s = "sb"
# s1 = s.center(10, "*") # 强行使用*在原字符串左右两端进行拼接. 拼接成10个单位
# print(s1)

# s = "    alex    is    a   gay   "
# s1 = s.strip() # 默认去掉空格. 空白	 

# print(s1)

# username = input("请输入用户名:").strip()
# password = input("请输入密码:").strip()
# if username == 'alex' and password =="123":
#     print("成功")
# else:
#     print("失败")

# s = "sb alex wusir sb sb taibai taibai sb"
# print(s.strip("sb")) # 可以指定要去掉的内容

# s = "泰坦尼克号, 西虹市首富, 小猪佩奇, 冒险王"
# s1 = s.replace("冒险王", "西西里的美丽传说")
# s2 = s.replace("佩奇", "wusir")
# print(s2)
#
# s = "alex_wusir_taibai_ritian"
# s1 = s.replace("_","")
# print(s1)

# s8 = "sylar_alex_taibai_wusir_eggon"
# # s9 = s8.replace("i", "sb", 2) # 换两次
# # print(s9)
#
# lst = s8.split("taibai") # 切完的结果是一个列表. 列表中装的是字符串. 用什么切. 就会损失掉什么
# print(lst)

# s = """我家大门常打开
# 开放怀抱等你
# 后面是什么歌词
# 我忘了"""
# lst = s.split("
")
# print(lst)

# s = "我今天下午要去吃饭饭"
# lst = s.split("我今天下午要去吃饭饭哈哈哈") # 没切
# print(lst)

# s = "我叫%s, 我今年%s了, 我喜欢%s" % ("周杰伦", "40", "昆凌")
# print(s)

# s = "我叫{}, 我今年{}了, 我喜欢{}".format("周杰伦", "40", "昆凌")
# print(s)

# s = "我叫{0}, 我今年{1}了, 我喜欢{2}".format("周杰伦", "40", "昆凌")
# print(s)

# s = "我叫{name}, 我今年{age}了, 我喜欢{hobby}".format(hobby="周杰伦", age="40", name="昆凌")
# print(s)

# s = "alex is a gay"
# print(s.startswith("tory")) # 以xxx开头
# print(s.endswith("girl")) # 以xxx结尾

# s = "I have a dream. I want to kill you!"
# 都可以进行索引范围
# print(s.count("dream")) # 计算a在字符串中出现的次数
# print(s.find("a")) # 查找xxx在字符串中出现的位置. 只找第一次出现的位置, 没有就返回-1
# print(s.index("z")) # 当字符串不存在的时候. 报错


# s = "abcdefg1@"
# print(s.isdigit()) # %d
# print(s.isalpha()) # 字母
# print(s.isalnum()) # 是否由数字和字母组成

# s = "壹仟贰佰五十六萬拾"
# print(s.isnumeric())

# 字符串长度, python的内置函数len(), int(), bool(), str(), type()
# s = "娃哈哈可口可乐"
# print(len(s)) # 字符串中的字符的个数


# s = "王小利刘能赵四"
# # # 对字符串进行遍历.
# n = 0
# while n < len(s):
#     print(s[n])
#     n = n + 1
#
# # 迭代
# for c in s: # charactor
#     print(c)
字符串类型基本用法

 字节流的问题 

s="中文"
print(type(s))
ls=s.encode("utf-8")     #已经编译成二进制,但是要打印的话会以16进制打印出来
print(ls)
print(ls.decode("utf-8"))
字节流的问题

列表:

# lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]

# 在屁股后面添加
# lst.append("黄宏") # 在原有的基础上进行的操作
# # 在xxx位置插入xxxx内容
# lst.insert(1,"王力宏")
# lst.extend(["麻花藤", "马云", "王健林", "许家印"]) # 迭代添加
# print(lst)

# 删除
# data = lst.pop(2) # 返回被删除的数据
# print(data)
# print(lst)

# lst.remove("赵四") # 删除元素.
# lst.remove("刘能") # 如果不存在会报错

# 切片删除
# del lst[1:3]

# 清空
# lst.clear()
# print(lst)

# lst = ["王者农药", "魔兽世界", "DNF", "逆水寒", "反恐精英"]
# # lst[0] = "扫雷"
# # print(lst)
# # lst[3] = "吃鸡"
#
# # lst[1:3] = ["跑跑卡丁车"]  # 先删除后添加
# # lst[1::2] = ["QQ华夏","QQ三国"] # 切片修改的时候. 如果步长不是1. 注意元素的个数
# print(lst)

lst = ["锅包肉", "好人家火锅", "巫山烤鱼", "清水煮白菜", "烤鸭"]
for el in lst: # element(元素)
    print(el)
列表类型基本用法
# 将列表转换成字符串. 每个元素之间用_拼接
# s = "**".join(["高华新", "刘清扬", "崔园樟"])   #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的参
# print(s)                                       #数是列表
#
# ss = "高华新**刘清扬**崔园樟"
# ss.split("**")                                 #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的
#                                                  参数是分隔符
# 字符串转换成列表: split()
# 把列表转换成字符串: join()

# s = "_".join("马化腾")
# print(s)
#
# join(可迭代对象)

# lst = ["紫云", "大云", "玉溪", "紫钻","a","b"]
# # lst.clear()
# new_lst = [] # 准备要删除的信息
# for el in lst: # 有一个变量来记录当前循环的位置
#     new_lst.append(el)
#
# # 循环新列表, 删除老列表
# for el in new_lst:
#     lst.remove(el)
#
# # 删除的时候, 发现. 剩余了一下内容. 原因是内部的索引在改变.
# # 需要把要删除的内容记录下来. 然后循环这个记录. 删除原来的列表
#
# print(lst)
# print(new_lst)


# lst = ["张国荣", '张铁林', '张国立', "张曼玉", "汪峰"]
# # 删掉姓张的
# # 记录姓张的.
# zhangs = []
# for el in lst:
#     if el.startswith("张"):
#         zhangs.append(el)
# for el in zhangs:
#     lst.remove(el)
# print(lst)
# print(zhangs)

# 字典
# dic = {"提莫":"冯提莫", "发姐":"陈一发儿", "55开":"卢本伟"}
# # dic.clear()
# lst = []
# for k in dic:
#     lst.append(k)
#
# for el in lst:
#     dic.pop(el)
# print(dic)

# 综上. 列表和字典都不能再循环的时候进行删除. 字典再循环的时候不允许改变大小

# dic = {"apple":"苹果", "banana":"香蕉"}
# # 返回新字典. 和原来的没关系
# ret = dic.fromkeys("orange", "橘子") # 直接用字典去访问fromkeys不会对字典产生影响
# ret = dict.fromkeys("abc",["哈哈","呵呵", "吼吼"]) # fromkeys直接使用类名进行访问
# print(ret)
# a = ["哈哈","呵呵", "吼吼"]
# ret = dict.fromkeys("abc", a) # fromkeys直接使用类名进行访问
# a.append("嘻嘻")
# print(ret)
补充知识点

元组:

# by luffycity.com
# print((1+3)*5)
# print((3))
# tu = (3, ) # 元组中如果只有一个元素. 需要在括号里写一个,
# tu = tuple() # 空元组
# print(type(tu))

# tu = ("人民币", "美元", "英镑", "欧元")
# tu.append("哈哈")
# tu[0] = "日元" # 不予许修改
# del tu[2] # 删除也不行

# print(tu[2]) # 索引可以用
# print(tu[::2])

# for el in tu:
#     print(el)

# 元组的第一层是不能进行赋值的. 内部元素是没有要求
# tu = (1, "哈喽", "how are you?", "alex", ["alex"])
# tu[3].upper()
# print(tu)
元组知识概要

字典:

# dic = {'name':'alex','age':9000}   #字符串
# print(dic)
#
# dic = {1:'a',2:'b',3:'c'}           #数字
# print(dic)
#
# dic = {True:'1',False:'0'}          #布尔值
# print(dic)
#
# dic = {(1,2,3):'abc'}                #元组
# print(dic)

# dic = {[1,2,3]:'abc'}
# print(dic)


#
    # dic['火女'] = '人头狗'   # 新增
    # print(dic)
    # dic.setdefault('火女','安妮')     # 如果在字典中存在就不进行任何操作,不存在就进行添加
    # dic.setdefault('火女','火男')
#

    # ret = dic.pop('易大师')  #通过key删除  返回被删除的value
    # print(ret)
    # del dic['剑豪']
    # dic.clear()   # {}

    # ret = dic.popitem()   #随机删除  返回值 一个元组  (key,value)
    # print(ret)
    # print(dic)

# 改:
    # dic['剑豪'] = '哈莎阁'   # 强制修改

    # dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'}
    # dic1.update(dic)
    #
    # print(dic1)

#

    # for 循环       元组  键  值   键值对

    # for i in  dic:
    #     print(i)     #for 循环默认是获取字典中的键

    # print(dic['易大师父'])                   #查看1   没有这个键的时候查询会报错
    # print(dic.get('易大师','你傻啊,没有!'))    #查看2   没有返回None 可以指定返回内容

    # print(dic.setdefault('易大师范湖'))        #查看3    没有返回None


# 其他操作(字典中独特的)
# keys  values items

# print(dic.keys())  # (高仿列表)
# print(dic.values())  # (高仿列表)
# print(dic.items())
# for i in dic.keys():
#     print(i)
#
# for i in dic:
#     print(i)     #获取到字典中的每一个键

# for i in dic.values():
#     print(i)     #获取到字典中的每一个值

# for i in dic.items():
#     print(i)


# 解构(解包)

a,b = '12'   #将后边解构打开按位置赋值给变量 支持  字符串 列表 元组
print(a)
print(b)
# dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'}
# for a,b in dic.items():
#     # print(dic.items())
#     print(a)
#     print(b)


    # dic1 = {}
    #
    # dics = dic1.fromkeys([1,2,3],'abc')


# 字典嵌套:

# dic = {
#     'name':'汪峰',
#     'age':43,
#     'wife':{
#         'name':'国际章',
#         'age':39,
#         'salary':100000
#     },
#     'baby':[
#         {'name':'熊大','age':18},
#         {'name':'熊二','age':15},
#     ]
#
# }
#
# dic['baby'][0]['age'] = 19
#
# print(dic)
字典操作

集合:

# s = {"周杰伦", "的老婆","叫昆凌", (1,2,3), "周杰伦"}
# lst = [11,5,4,1,2,5,4,1,25,2,1,4,5,5]
# s = set(lst)    # 把列表转换成集合. 进行去重复
# lst = list(s)   # 把集合转换回列表.
# print(lst)
#添加
# s = {"刘嘉玲", '关之琳', "王祖贤"}
# s.add("张曼玉")
# print(s)

# # s.update("麻花藤")    # 迭代更新
# s.update(["张曼玉","李若彤","李若彤"])
# print(s)

#删除,随机删除一个
s = {"刘嘉玲", '关之琳', "王祖贤"}
# s.pop()      #随机弹出一个,不能加参数,加参数报错
# print(s)

# s.remove("王祖贤")
# print(s)

# s.clear()
# print(s)


# 集合本身是可变的数据类型, 不可哈希, 有增删改查操作
# s = {"刘嘉玲", '关之琳', "王祖贤"}
# # s.update("麻花藤")    # 迭代更新
# s.update(["张曼玉","李若彤","李若彤"])
# print(s)

# 集合中的元素必须是可哈希的. 不重复的. 可以去重. 哈希hash算法
#要点总结:可哈希指的是不可变的数据结构(字符串str,元组tuple,对象集objects)
#可哈希(hashable)和不可变性(immutable)

#如果自己的生命周期中有一个哈希值是不可变的,那么他就是可哈希的,这个哈希值就是他们的id()
#参考链接:https://blog.csdn.net/u010250863/article/details/64129948/
集合
原文地址:https://www.cnblogs.com/zhuhaofeng/p/9614549.html