一、字符串
'''
字符串
'''
str1 = "单引号"
str2 = "双引号"
str3 = """
三引号
可以换行
"""
print(str1)
print(str2)
print(str3)
# 字符串截取 与PHP 的 substr()相似
substr = "这是一句很牛逼的话"
print(substr[0])
print(substr[0:2])
print(substr[0:9:2]) #[哪个数字开始 : 哪个数字结束 : 步进值]
print(substr[5:])
print(substr[:5])
print(substr + '真的哦') # 字符串拼接
print('-' * 30) # 显示30个-
print("hello\nword") # 使用反斜杠实现转义的功能
print(r"hello\nword") # 在字符串前面加r,表示直接显示,不进行转义
二、列表
'''
列表
'''
#
namelist = ['张三','李四',3,5] #定义一个列表
print(len(namelist)) # 获取列表的长度 与PHP的count相似
for value in namelist: # 遍历列表
print(value)
'''
增
append 在列表末尾追加一个元素 与PHP的array_push相似(注意这里还能追加一个列表)
extend 一个一个合并与PHP中的array_merge相似
insert namelist.insert(下标,元素值) 指定下标位子插入元素
'''
namelist.append('王麻子') # 在列表末尾追加一个元素 与PHP的array_push相似(注意这里还能追加一个列表)
list = ['土匪','强盗']
namelist.append(list) # ['张三', '李四', 3, 5, '王麻子', ['土匪', '强盗']]
print(namelist)
namelist.extend(list) #['张三', '李四', 3, 5, '王麻子', '土匪', '强盗'] 一个一个合并与PHP中的array_merge相似
print(namelist)
namelist.insert(1,4) #['张三', 4, '李四', 3, 5, '王麻子'] namelist.insert(下标,元素值) 指定下标位子插入元素
print(namelist)
mylist = ['a','b','c','d']
for i,x in enumerate(mylist): # 0-a 1-b 2-c 3-d enumerate函数将列表转为枚举,可以同时拿到列表中的下标和元素
print(str(i) +'-'+ str(x))
'''
删
del 指定一个下标位子删除
pop 弹出下标的最后一个值
remove 删除指定的值 如果有重复数据,会先删除第一个重复值
'''
delete_list = ['路飞','索隆','山治','娜美','乔巴','乌索普','黑胡子','凯多']
del delete_list[7] #['路飞', '索隆', '山治', '娜美', '乔巴', '乌索普', '黑胡子'] 指定一个下标位子删除
print(delete_list)
delete_list.pop() #['路飞', '索隆', '山治', '娜美', '乔巴', '乌索普', '黑胡子'] 弹出下标的最后一个值
print(delete_list)
delete_list.remove('黑胡子') # ['路飞', '索隆', '山治', '娜美', '乔巴', '乌索普', '凯多'] 删除指定的值 如果有重复数据,会先删除第一个重复值
print(delete_list)
'''
改
直接指定下标修改
'''
update_list = ['哥老关','地头蛇','长老关','不得了','洋盘得很']
update_list[1] = '墙头草' # ['哥老关', '墙头草', '长老关', '不得了', '洋盘得很'] 直接指定下标修改
print(update_list)
'''
查
in
not in
'''
index_list = ['你看看你','一天天的','不得了的很','无敌是多么寂寞']
find = '可以哦'
find2 = '一天天的'
if find in index_list: # not in 与这个用法一样
print('在里面')
else:
print('不在里面')
index = index_list.index('一天天的',0,2) # 1 可以查找指定元素在莫个区间是否存在,从多少下标开始,到多少长度结束,有就返回下标,没有就是报错
print(index)
index = index_list.index('一天天', 0, len(index_list)) #报错
print(index)
count = index_list.count('一天天的') # 1 返回指定元素的数量
print(count)
num_list = [1,3,5,4,8,6,2]
num_list.reverse() # [2, 6, 8, 4, 5, 3, 1] 将列表元素反转
print(num_list)
num_list.sort() # [1, 2, 3, 4, 5, 6, 8] 列表从小到大排序
print(num_list)
num_list.sort(reverse=True) #[8, 6, 5, 4, 3, 2, 1] 降序
print(num_list)
name_lists = [[],[],[],[]]
name_list = ['骨王','安兹乌尔恭','史莱姆','路飞','唐三','小舞','石昊','火灵儿']
import random
for list in name_list:
index = random.randint(0,3)
name_lists[index].append(list)
i = 1
for name in name_lists:
print('第%d个位子有%d个人物'%(i,len(name)))
i += 1
for user in name:
print('%s'%user,end='\t')
print('\n')
print('-'*30)
# 打印结果
# 第1个位子有2个人物
# 骨王 石昊
#
# ------------------------------
# 第2个位子有2个人物
# 史莱姆 小舞
#
# ------------------------------
# 第3个位子有2个人物
# 安兹乌尔恭 唐三
#
# ------------------------------
# 第4个位子有2个人物
# 路飞 火灵儿
#
# ------------------------------
#需求1按下面需求输出
products = [['iphone',6888],['MacPro',14800],['小米6',14546],['IQOO',4500],['红米',6300]]
print('-'*6 + ' 商品列表 '+ '-'*6,end='\n')
index = 0
for product in products:
print('%d %s %d'%(index,product[0],product[1]))
index += 1
# ------ 商品列表 ------
# 0 iphone 6888
# 1 MacPro 14800
# 2 小米6 14546
# 3 IQOO 4500
# 4 红米 6300
#需求2 根据上面的products列表写一个循环,不断询问对方想买什么,用户选择一个商品编号,就把对应的商品加入购物车,最终用户输入q时,打印出购买的商品列表
carts = []
while True:
a = input('请输出你要买的商品商品编号')
if a == 'q':
break
elif a == '' or (int(a) not in [0,1,2,3,4]):
print('商品编号不存在,请重新输入!')
continue
else:
carts.append(products[int(a)][0] +'-'+ str(products[int(a)][1]))
print('-'*6 + ' 购买商品列表 '+ '-'*6,end='\n')
pay = []
if len(carts) > 0:
for cart in carts:
if cart not in pay:
value = cart.split('-',1)
print('%s *%d %s'%(value[0],carts.count(cart),(int(value[1]) * carts.count(cart))))
pay.append(cart)
else:
print('暂无购物商品商品')
# ------ 购买商品列表 ------
# MacPro *2 29600
# 小米6 *2 29092
# IQOO *1 4500
# iphone *3 20664
三、元组
'''
Tuple(元组)
Python的核心数据类型
tuple与list类似,不同之处在于tuple的元素不能修改,tuple写在小括号里,元素之间用逗号隔开
元组的元素不可变,但可以包含可变的对象如list
注意:定义一个只有1个元素的tuple,必须教逗号
'''
tup1 = (50,) #加逗号才是元组,当只有一个元素时去掉这个逗号就不是元组了,必须加上这个逗号
tup = (10,20,30,42,50)
print(tup[0:4]) #(10, 20, 30, 42)
# 增
tup1 = (10,60,80)
tup2 = ('aaa','张三')
tup = tup1 + tup2 #(10, 60, 80, 'aaa', '张三')
print(tup)
#删
tup1 = (10,60,80)
del tup1 # 这里删除直接把变量都给你删除了一定要记住,所以下面打印就会报错
# print(tup1) # 这里会报错
#改 元组不允许修改
四、字典
'''
dict(字典)
字典是无序的对象集合,使用键-值(key-value) 存储,具有极快的查找速度
键(key)必须使用不可变类型
同一个字典中,key必须是唯一的
'''
dict = {
'name': '张三',
'age': 24
}
print(dict['name']) #张三
# print(dict['sex']) # 直接访问会报错,因为不存在该键
print(dict.get('sex')) #None 使get方法,没有找到对应的值,默认返回:None
print(dict.get('sex','1')) # 1 如果字典存在就返回原值,否则返回1
#增
id = 1
dict['id'] = id
print(dict) # {'name': '张三', 'age': 24, 'id': 1}
#删
del dict['age']
print(dict) # {'name': '张三'} 删除字典的age
del dict
print(dict) #<class 'dict'> 删除所有的字典
dict.clear()
print(dict) #{} 清空字典
#改
dict['age'] = 25
print(dict) #{'name': '张三', 'age': 25}
#查
keys = dict.keys() # dict_keys(['name', 'age']) 得到所有的键(列表)
print(keys)
values = dict.values() # dict_values(['张三', 25]) 得到所有的值(列表)
print(values)
items = dict.items() # dict_items([('name', '张三'), ('age', 25)]) 得到所有的项(列表),每个键值都是一个元组
print(items)
for key in dict.keys():
print(key) # name age 遍历所有的键
for value in dict.values():
print(value) # 张三 25 遍历所有的值
for key,value in dict.items():
print(key +'-'+ str(value)) # name-张三 age-25 遍历所有的键值对 与php 的 foreach遍历数组一个效果
五、集合
'''
set(集合)
'''
set = set([1,2,3,4]) # 值不能重复
print(set) # {1, 2, 3}
新手学习请勿喷!
欢迎各位小伙伴来我的QQ交流群一起学习 :842167453