Python_数据类型及操作

字符串拼接的几种操作
1.使用 + 进行字符串的拼接

info = 'asd'+'123'
print(info)

2.使用占位符 %占位符 %s 字符串 %d %f

name = 'Richard'
age = 18
info = '''
--------------info of %s-------------
Name:%s
Age:%s
'''%(name,name,age)
print(info)

3.使用format语句

name = 'Richard'
age = 18
info = '''
--------------info of {_name}-------------
Name:{_name}
Age:{_age}
'''.format(_name=name,_age=age)
print(info)

4.使用数字占位

name = 'Richard'
age = 18
info = '''
--------------info of {0}-------------
Name:{0}
Age:{1}
'''.format(name,age)
print(info)

pycharm下各种模块,通过ctrl+鼠标左键点击可以看到这个模块的参数和用法

变量 开辟内存空间说明

name = ‘Richard’

开辟一个内存空间放Richard,name指向这个空间的地址

**
可以使用反斜杠为行结尾的连续字符串,它表示下一行在逻辑上是本行的后续内容 :

hello = "This is a rather long string containing\n\
several lines of text just as you would do in C.\n\
Note that whitespace at the beginning of the line is\
significant."
print(hello)

字符串可以由 + 操作符连接(粘到一起),可以由 * 重复
Python 字符串不可变。向字符串文本的某一个索引赋值会引发错误,组合文本内容生成一个新文本简单而高效
切片操作有个有用的不变性: s[:i] + s[i:] 等于 s 。

>>> word[-1] # The last character
'A'
>>> word[-2] # The last-but-one character
'p'
>>> word[-2:] # The last two characters
'pA'
#  -0  实际上就是 0  ,所以它不会导致从右边开始计算!

数据类型

数字、布尔值、字符串、列表、元组、字典
**
字符串
字符串就是一系列字符,可以单引号也可以双引号,为了在字符串中包含引号和撇号
制表符 \t 换行符\n
调用函数str(info) 可将非字符串值表示成字符串值

name = "my name is Richard"
print(name.capitalize()) #首字母大写
print(name.count("a")) #有多少a
print(name.center(50,"-")) #打印50个字符 不够有-补上
print(name.endswith("ex")) #判断以什么结尾
print(name.find("name")) #找位置 字符串也是可以切片的
print("Asdf".isidentifier()) #哦安短是不是一个合法的标识符、变量名
print(name.isupper()) #是否全为大写
print('X'.join(["asd","asdad"]))
print(name.ljust(50,"#"))
print(name.rjust(50,"*")) #总共50个 位置在右边 其余不够的补*
print(" asd ".strip()) #去掉两边的空格和回车
p = str.maketrans("abcdefghihdsl","123456789%$^&") #设置随机密码
print("asdasd".translate(p))
print("alex li".replace("l","L")) #对字符串进行替换
print("alex lil".rfind("l"))
print("12+23+56+456+456".split("+")) #按照某种形式对字符串进行分割
print("asd".zfill("5")) #设置位数不够左边补零

数字 整数 浮点数
Python中使用两个乘号表示乘方运算
运算符
三元运算符

result =1 if 条件 else2

如果条件为真,result = 值1,如果条件为假,result = 值2

3**2   #9

列表
列表是由一系列按特定顺序排列的元素组成的,用方括号表示列表,用逗号分隔其中的元素。

最通用的是 list ( 列表 ) ,它可以写作中括号之间的一列逗号分隔的值。列表的元素不必是同一类型。

列表是有序集合,索引从0开始,最有一个元素的索引号为-1,倒数第二个-2,以此类推

所有的切片操作都会返回新的列表,包含求得的元素

内置函数 len() 同样适用于列表

内置函数 len() 同样适用于列表

>>> q = [2, 3]
>>> p = [1, q, 4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[1][0]
2

a, b = b, a+b
# 变量赋值前,右边首先完成计算。右边的表达式从左到右计算
# print(b, end=',')   #禁止换行

字符串列表

names = ["ZhangYang","WuYun","XiangPeng","Xuliangcheng"]
names.append("Leihaidong") #末尾加入
names.insert(1,"Chenronghua") #插入任意位置
names.insert(3,"Xinzhiyu")
names[2] = "Xiedi" #修改
print(names)
#delete 删除
del names[0]  #删除需要知道元素在列表中的位置
#names.remove("Chenronghua")   #根据值删除元素,知道元素但是不知道元素所在的位置,只删除第一个指定的值
#del names[1] = names.pop(1)  pop()里面可加入index进行删除
#方法pop()可删除列表末尾元素,并让你能够直接使用它
names = ["ZhangYang","WuYun","XiangPeng","Xuliangcheng"]
name = names.pop()
print(names)
print(name)
#print(names[0],names[2])
#print(names[1:3]) #切片 顾首不顾尾
print(name[:3])  #自动从列表的开头进行
print(name[2:])  #从2开始直到结束
#print(names[-1]) #最后一个-1 两个-2  负数索引返回列表末尾相应距离元素
#print(names[-3:-1]) #切片从左往右数
#print(names[-2:]) #前面0 后面-1 可省略
print(names[names.index("Xiedi")]) #查找下标
#print(names.count("Xiedi")) #有多少个相似的
#names.clear() #清空自己
names.reverse() #反转 永久性修改了列表元素的排列顺序
names.sort() #排序 按字母表顺序永久性修改了列表元素的排列顺序 
names = ["ZhangYang","WuYun","XiangPeng","Xuliangcheng"]
names.sort(reverse=True)  #与字母表相反的顺序
name = sorted(names,reverse=True)
print(names)
# list. index(x)返回链表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
len(names)   #确定列表的长度
sorted(names)  #对列表进行临时排序,不改变列表实际的顺序

names2 = [1,2,3,4,5,6]
names.extend(names2) #加入另一个列表
print(names)

names = ["ZhangYang","WuYun","XiangPeng","Xiedi",["alex","jack"],"Xuliangcheng"]
names.append("Leihaidong") #加入
name2 = names.copy()
print(names)
print(name2)
names[0] = "张扬"
names[4][0] = "ALEXEHD"
print(names[4][0])
print(names)
print(name2)

#列表循环 for语句遍历整个列表 从names中取出一个名字放到i中 i任意名称
#for循环想要包含多少代码修行,每个缩进代码都是循环的一部分,且将对列表中的每个值执行一次
#冒号表示写一行是循环行
for i in names:
    print(i)
#跳着切
print(names[0:-1:2])
print(names[::2])

数字列表

#使用函数range()可轻松生成一系列的数字 顾前不顾后
for i in range(0,5):
    print(i)
# 0 1 2 3 4
#使用函数list()将range()创建的结果直接转换为列表
a = range(5)
b = list(range(5))
print(type(a))
print(type(b))
print(b)
#<class 'range'>
#<class 'list'>
#[0, 1, 2, 3, 4]
#指定步长 从2开始,不断增加2,直到达到或最终超过11
a = list(range(2,11,2))
#求最小 最大 求和
min(a)
max(a)
sum(a)

列表解析
列表解析将for循环和创建新元素的代码合成一行,并自动添加新元素

squares = [value**2 for value in range(1,5)]
print(squares)

复制列表

squares = [value**2 for value in range(1,5)]
s1 = squares    #两个变量都指向同一个列表
s2 = squares[:] #深copy 完全独立的两个部分

import copy
names = ["ZhangYang","WuYun","XiangPeng","Xiedi",["alex","jack"],"Xuliangcheng"]
names.append("Leihaidong") #加入
#name2 = names.copy()  #浅copy 
#name2 = names
name2 = copy.deepcopy(names)
print(names)
print(name2)
names[0] = "张扬"
names[4][0] = "ALEXEHD"
print(names[4][0])
print(names)

# 嵌套的列表推导式
matrix = [
	[1,2,3],
	[4,5,6],
	[7,8,9],
]

[[row[i] for row in matrix] for i in range(4)] #行列交换
list(zip(*matrix))

切片
元组
字符串非常适合存储在程序运行期间可能变化的数据集,不可改变的列表称为元组
元组定义使用圆括号,可用索引来访问元素
虽然不能修改元组的元素,但是可以给存储元组的变量赋值

dimensions = (500,100)
for i in dimensions:
    print(i)
dimensions = (200,300)
for i in dimensions:
    print(i)

字典
字典时一系列键值对,每个键都与一个值对应,用{}花括号中的一系列键值对表示,键和值之间用冒号,键值对之间用逗号分隔

#key-value
info = {
"stu1101":"TenLan Wu",
"stu1102":"LongZe Luoza",
"stu1103":"XiaoZe Msa",
}

info["stu1101"] = "阿打算"  #修改或添加键值对
#print(info["stu1101"])   #访问字典中的值
print(info)
#del
#del info["stu1101"]  #删除
info.pop("stu1101")
print(info)

print(info.get("stu1103"))  #获得一个数据
print("stu1101" in info)    #判断一个是不是在

for i in info:
    print(i,info[i])       #比下面高效很多
for k,v in info.items():   #键存在k,值存在v中
    print(k,v)
#遍历字典中的键
for k in info.keys():  #=for k in info
#遍历字典中的值
for v in info.values():  #为剔除重复可使用集合set

上述几种可以互相嵌套
字典列表,在字典中存储列表,在字典中存储字典

#购物小程序
product_list = [
("Iphone",5800),
("Mac Pro",9800),
("Bike",800),
("watch",10600),
("Coffee",31),
("Allex",120)
]
shopping_list = []
#print(product_list[1])
salary = input("Input your salary:")
if salary.isdigit():
    salary = float(salary)
while True:
    for index,item in enumerate(product_list):
#print(product_list.index(item),item) #寻找下标
    print(index,item)
    user_choice = input("选择要买嘛? ")
    if user_choice.isdigit():
        user_choice = int(user_choice)
    if user_choice<len(product_list) and user_choice>=0:
        p_item = product_list[user_choice]
        if p_item[1]<=salary:
            shopping_list.append(p_item)
            salary-=p_item[1]
        print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m"%(p_item,salary))
        else:
        print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m"%salary)
        exit()
    else:
        print("商品不存在!!")
        exit()
    elif user_choice =="q":
        print("---------shopping list-----------")
        for p in shopping_list:
            print(p)
            print("Your current balance is %s"%salary)
            exit()
    else:
    print("Invalid option!")
    exit()

集合

l1 = [1,4,5,6,2,3,1,4,5]
l1 = set(l1)
l2 = set([1,2,5,1,2,3,19])
l3 = set([1,2,3,4,5,6,7,8,9,10])
print(l1,l2,l3)

#交集
print(l1.intersection(l2))
#并集
print(l1.union(l2))
#差集 1里有2里没有的
print(l1.difference(l2))
#子集
print(l1.issubset(l3))
print(l3.issuperset(l1))
#对称差集
print(l1.symmetric_difference(l2))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值