2.11
列表循环和排序
n =
"银角大王"
n[::-1
]
>>> n =
"银角大王"
>>> n[::-1
]
'王大角银'
上面切片,切成的反转,但是实际上不会对源列表造成反转.
----------------
n = [
'银角大王',123
]
n.reverse()
print(n)
D:\Python\python.exe D:/cc/
反转.py
[123,
'银角大王']
reverse反转,直接对源列表造成了反转.
---------------------
n.sort()
n = [1,2,32,15,7,5
]
n.sort()
print(n)
排序
-----------------------------
n = [
'123',
'678',
'$',
'234']
n.sort()
print(n)
如果是字符串,就会对比十进制
python3 里面. 数字和字符串 无法 在一起进行sort排序,不过python2里面可以
---------------
针对列表
names=[
'金角大王',
'黑姑娘',
'rain',
'eva',
'狗蛋',
'银角大王',
'eva',
'鸡头']
进入以下操作
通过names.index()的方法返回第2个eva的索引值
把以上的列表通过切片的形式实现反转
打印列表中所有下标为奇数的值
通过names.index()方法找到第2个eva值 ,并将其改成EVA
-------------------
根据以下数据结构:
goods =
[
{"name":
"电脑",
"price": 1999
},
{"name":
"鼠标",
"price": 10
},
{"name":
"游艇",
"price": 20
},
{"name":
"美女",
"price": 998
},
]
实现功能要求:
1
、启动程序后,让用户输入工资,然后进入循环,打印商品列表和编号
2
、允许用户根据商品编号选择商品
3
、用户选择商品后,检测余额是否够,够就直接扣款,并加入购物车, 不够就提醒余额不足
4
、可随时退出,退出时,打印已购买商品和余额
------------------------------
2.12
元组
不可变 =
只读列表
只有 count 和 index 用法
如果元组里面包含可变数据类型, 比如 "列表" , 那么 这个列表可以改变.
>>>
data
(99, 88, 77, [
'Alex',
'Jack'], 33
)
>>> data[3][0] =
'金角大王'
>>>
data
(99, 88, 77, [
'金角大王',
'Jack'], 33
)
2.14 数据类型--
字符串
字符串是有序的字符的集合, '' 或者
"" 包含的 属于字符串
-----------------------
capitalize 首字母大写
a =
"hahx"
a.capitalize()
'Hahx'
---------------------
casefold 把字符串全变小写
a =
"HAHX"
a.casefold()
'hahx'
-----------------------
center 补齐
a.center(10,
'-') 补齐10个,用-
补齐10个
'---HAHX---'
a =
"welecome to 广东"
a.count('e') 默认查找所有e 共有3个
3
a.count('e',2,-1
) 指定从第二个开始到结束,查找有几个字符串 e,只有2个
2
-------------------------------
startswith() 判断是否xx开头
-------------------------------
endswith
a.endswith('广东') 判断是否广东结尾
True
-----------------------------------------------
find
a =
"welecome to 广东"
a.find('e')
1
# 从下标0开始,查找在字符串里第一个出现的子串,返回结果:
a.find(
'e',7
)
7
# 从下标7开始,查找在字符串里第一个出现的子串:返回结果 7
a.find(
's')
-1
# 找不到返回-1
有点类似 index
---------------------------
format()
s =
"Welcome {0} to Apeland,you are No.{1} user.,再次恭喜:{0}"
s.format('大傻瓜',5
)
'Welcome 大傻瓜 to Apeland,you are No.5 user.,再次恭喜: 大傻瓜'
里面出现2个{0}, 只要按照默认顺序排列好,就没问题
------------------------------
s =
"Welcome {0} to Apeland,you are No.{1} user"
s.format('大傻瓜',5
) 需要按照默认顺序来,.
'Welcome 大傻瓜 to Apeland,you are No.5 user.'
--------------------------------------
s =
"Welcome {name} to Apeland,you are No.{count} user."
s.format(count= 4,name=
'大傻瓜') 可以不用指定顺序, 只要定义好就可以
'Welcome 大傻瓜 to Apeland,you are No.4 user.'
---------------------------
isdigit() 判断是否是数字
a =
"3" # 不能直接写3 ,否则会报错. AttributeError: 'int' object has no attribute 'isdigit'
if not a.isdigit():
print(
'no')
else:
print(
'yes')
yes
---------------------------------
islower() 是否由小写字母组成
--------------------------------
isupper() 是否都为大写组成
-----------------------------
isspace() 是否只由空格组成
-------------------
join() 把列表的字符串拼接起来 可以指定拼接的 格式
>>> n = [
'alex',
'jack',
'rain']
>>>
'|'.join(n)
'alex|jack|rain'
-----------------------------
ljust() 补齐剩下的,从字符串最后一个地方开始补齐指定的格式,如'-'
a =
"haha"
a.ljust(10,
'-')
'haha------'
------------------------------
rjust() 补齐剩下的,从字符串最开始地方开始补齐指定的格式,如'*'
a.rjust(10,
'*')
'******haha'
-----------------------------
lower()
方法转换字符串中所有大写字符为小写, 其效果和 casefold() 方法非常相似。
两者的区别是:lower() 方法只对ASCII编码,也就是‘A-
Z’有效,
对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法。
------------------------------
strip() 将一个字符串分隔成多个字符串组成的列表
把字符串2边的 \n \t 空格去掉
a =
"\t 简单 \n "
a
'\t 简单 \n '
a.split()
['简单']
#split之后,组成了列表
a =
'alex,haha.jbm, mm|qq'
a.split(",")
['alex',
'haha.jbm',
' mm|qq']
a.split(" ")
['alex,haha.jbm,',
'mm|qq']
a.split("|")
['alex,haha.jbm, mm',
'qq']
lstrip() split左边的
rstrip() split右边的
-----------------------------
replace() 替换, 如果有多个同样的, 那么会把所有的都改掉
a =
"我有一只狗叫jack,jack喜欢吃猪肉,你喜欢jack吗"
a.replace("jack",
"tom")
'我有一只狗叫tom,tom喜欢吃猪肉,你喜欢tom吗'
a.replace("jack",
"tom",2
) 加上参数2,那么只改2次
'我有一只狗叫tom,tom喜欢吃猪肉,你喜欢jack吗'
---------------------------
swapcase() 对字符串的大小写字母进行转换。
a =
'alEXx,haHasS.JMK, Mm|qQ'
a.swapcase()
'ALexX,HAhASs.jmk, mM|Qq'
转载于:https://www.cnblogs.com/666sss/p/11573711.html