python开发---运算符&数据类型
Posted liuchunling
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python开发---运算符&数据类型相关的知识,希望对你有一定的参考价值。
pycharm的安装
https://blog.csdn.net/pdcfighting/article/details/80297499
https://www.cnblogs.com/mosson/p/10248395.html
运算符
算术运算符:
+ - * / ---加减乘除
// ---取商
% ---取余
** ---幂
成员运算:
in:在指定序列有给定值,返回值是True
not in:在指定序列没有给定值,返回值是True
例: not in name = "证件问" if "证" not in name: print("ok") else: print( "error") 结果:error ---- in name = "证件问" if "证" in name: print("ok") else: print( "error") 结果:ok
比较运算:
== 等于
!# 不等于 <> 不等于
> 大于 >= 大于等于
< 小于 <= 小于等于
逻辑运算:
and
or
not
优先计算括号内的内容
赋值运算:
+= 例:count = count + 1 等于 count += 1 -= 例:count = count - 1 等于 count -= 1 *= 例:count = count * 1 等于 count *= 1 /= 例:count = count / 1 等于 count /= 1 //= 例:count = count // 1 等于 count //= 1 %= 例:count = count % 1 等于 count %= 1 **= 例:count = count ** 1 等于 count **= 1
布尔值:
True 真 1
False 假 0
***算术运算和赋值运算得到的结果是值
***比较运算,逻辑运算和成员运算的结果是布尔值
数据类型
基本数据类型:数字,字符串,布尔值
数字:int ---将字符串转换为数字
在python3里,不管数字多大都是int,即整形
在python2里,数值超过一定值是就不叫int,而且叫long,即长整形
例:
a = "123" b = int(a) print(type(a),a) print(type(b),b) 结果: <class ‘str‘> 123 <class ‘int‘> 123
例:base进制,默认10进制
num = "b"
v = int(num,base=16)
print(v)
例:bit_length()当前数字二进制至少用几位表示
age = 4
# 1 1
# 2 10
# 3 11
# 4 100
# 5 101
r = age.bit_length()
print(r)
结果: 3
字符串:str
****字符串在内存中一旦创建,就不可修改
****一旦修改和拼接都会生成新的字符串
一个字节是8位,一个汉字在utf8里,是3个字节
例:capitalize(),首字母大写 test = "alex" v = test.capitalize() print(v) 结果:Alex
例:islower()判读字符串是否为小写字母
例:casefold()和lower(),所有大写变小写,前者可用对很多规则的对应变相应小写,后者支持部分规则变小写
test = "aLex"
v1 = test.casefold()
v2 = test.lower()
print(v1)
print(v2)
结果:
alex
alex
例:center() 设置宽度,并将内容居中,20代指总长度,*代表空白位置填充
ljust() 设置宽度,并将其内容居左
rjust() 设置宽度,并将其内容居右
test = "aLex"
v = test.center(20,"*")
print(v)
结果:
********aLex********
test = "alex"
v = test.ljust(20,"*")
print(v)
test1 = "alex"
v1 = test1.rjust(20,"*")
print(v1)
结果:
alex****************
****************alex
例:count(),去字符串中寻找子序列的出现次数,从第3个字符到第10个字符x出现发次数
test = "aLexalex"
v = test.count("x",3,10)
print(v)
结果:2
例:endswith(),startswith(),以什么结尾,以什么开头
test = "alex"
v1 = test.endswith("x")
v2 = test.startswith(‘s‘)
print(v1)
print(v2)
结果:
True
False
例:find(),从开始忘后找,找到第一个之后,获取位置 (从第5位置开始,找到第8位)未找到返回值为-1 ***index() 也是寻找,如果找不到直接报错
test = "alexalex"
v = test.find(‘ex‘,5,8)
print(v)
结果:6
例:format(),格式化,将一个字符串的占位符替换为指定的值
test = "i am {name},age {a}"
print(test)
v = test.format(name="alex",a=19)
print(v)
结果:
i am {name},age {a}
i am alex,age 19
例:0永远代表第一位,以此类推
test = "i am {0},age {1}"
print(test)
v = test.format("alex",19)
print(v)
结果:
i am {0},age {1}
i am alex,age 19
例:isalnum(),字符串中只能出现数字和字母,有其他字符,则返回值为false
例:isalpha(),字符串中只能出现字母,有其他字符,则返回值为false
例:expandtabs() ,tab以前到tab为20个字符,即短句一组为20,以tab为分割线
test = "username\\temail\\tpassword\\nmaodou\\[email protected]\\t123\\nmaodou\\[email protected]\\t123\\nmaodou\\[email protected]\\t123"
print(test)
v = test.expandtabs(20)
print(v)
结果:
username email password
maodou [email protected] 123
maodou [email protected] 123
maodou [email protected] 123
username............email...............password
[email protected]
[email protected]
[email protected]
例: isdecimal()为10进制数字支持,isdigit()支持10进制以及特俗数字符号,isnumeric(),支持10进制以及特俗数字符号和汉字数字
test = "②1"
v1 = test.isdecimal()
v2 = test.isdigit()
print(v1,v2)
结果:False Ture
例:isprinttable(),存在不可显示的字符,返回结果为False(如有\\t制表符 \\n换行符)
例:isspace(),是否全部为空格,全部为空格,返回值是Ture
例:istitle(),判断死否为标题(首字母为大写) title(),把不是标题的变成标题
例:join(),添加间隔 将字符串中的每一个元素按照指定分隔符进行拼接 (内部作循环)
test = "我喜欢诺诺罗亚索隆"
t = " "
v = t.join(test)
print(test)
print(v)
结果:
我喜欢诺诺罗亚索隆
我 喜 欢 诺 诺 罗 亚 索 隆
我_喜_欢_诺_诺_罗_亚_索_隆
例:upper() ,把字符串变成大写
例:isupper() ,判断字符串是否为大写
例:默认lstrip()去除左空白
默认 rstrip()去除右空白
默认strip() 去除两边空白(包括空格,换行,tab) 也可指定去除内容
test = " alex "
v = test.lstrip()
v1= test.rstrip()
v2 = test.strip()
v3 = test。lstrip(‘a‘)
print(v)
print(v1)
print(v2)
print(v3)
结果:
alex.
.alex
alex
lex
例:str.maketrans()创建对应关系,reanslate()替换
v = "1324365760"
m = str.maketrans("12345670","qweracsd")
new_v = v.translate(m)
print(new_v)
结果:qewrecascd
例:partition() 以什么分割 只能分割成3份
splits() 以什么为分割,去掉分割点(test.partition("s",2))分割前2个s
test = "testsbjkbksjb"
v = test.partition("s")
v1 = test.rpartition("s")
v2 = test.split("s")
v3 = test.rsplit("s")
print(v)
print(v1)
print(v2)
print(v3)
结果:
(‘te‘, ‘s‘, ‘tsbjkbksjb‘)
(‘testsbjkbk‘, ‘s‘, ‘jb‘)
[‘te‘, ‘t‘, ‘bjkbk‘, ‘jb‘]
[‘te‘, ‘t‘, ‘bjkbk‘, ‘jb‘]
例: splitlines() 分割只根据True和False选择和保留换行
test = "sfsdg\\nsfsakgj\\nfdsaf"
v = test.splitlines(False)
v1 = test.splitlines(True)
print(v)
print(v1)
结果:
[‘sfsdg‘, ‘sfsakgj‘, ‘fdsaf‘]
[‘sfsdg\\n‘, ‘sfsakgj\\n‘, ‘fdsaf‘]
例:startswith(),判断字符串是否以XX开头
例:endswith(),判断字符串是否以XX结尾
例:swapcase(),字符串大小写互换
test = "MaoDou"
v = test.swapcase()
print(v)
结果:mAOdOU
基本:***join split find strip upper lower ***
中级:
1.索引/下标(从0开始)---获取字符串中某一个字符
例:
test = "alex"
v = test[0]
print(v)
结果:a
2.切片:获取字符串某个范围内的字符
例:>=0 & <1
test = "alex"
v = test[0:1]
print(v)
结果:a
test = "alex"
v = test[0:-1]
print(v)
结果:ale
3.len:在python3中:获取当前字符串由几个字符串组成
在pyhton2中:若字符串是中文 ,例:毛豆 则返回值是6
例:
test = "alex"
v = len(test)
print(v)
结果:4
4.for循环
for 变量名 in 字符串:
例:
test = "毛豆是个毛孩子"
# index = 0
# while index < len(test):
# v = test[index]
# print(v)
# index += 1
# print("====")
for i in test:
print(i)
结果:
毛
豆
是
个
毛
孩
子
5.range:帮助创建连续的数字,也可以通过步长设置不连续
例:
v = range(0,100) ---连续数字
v = range(0,100,5) ---步长为5的不连续数字
6.将文字对应的索引打印出来
例:
test = input(":")
print(test)
L = len(test)
print(L)
r =range(0,L)
for item in r: ===for item in range(0,len(item))
print(item, test[item])
结果:
:cat
cat
3
0 c
1 a
2 t
列表:list
列表内的元素可以被修改
中括号括起【】,以,分割元素
列表里的元素可以是数字,字符串,列表,布尔值......所有东西都能放在里面
“集合”内部可以放任何东西
1.通过索引取值
例:li = ["a","b",6,[1,2,3],"sss"]
print(li[1])
结果:b
2.通过切片取值,切片结果也是个列表
例:li = ["a","b",6,[1,2,3],"sss"]
print(li[1:3])
结果:["b",6]
3.修改列表元素
用切片方式也可以进行修改
例:索引的方式
li = ["a","b",6,[1,2,3],"sss"]
li[1] = 120
li[0] = [1,2,"dl"]
print(li)
结果:[[1, 2, ‘dl‘], 120, 6, [1, 2, 3], ‘sss‘]
例:切片的方式
li = ["a","b",6,[1,2,3],"sss"]
li[1:3] = ["bb",60]
print(li)
结果:[‘a‘, ‘bb‘, 60, [1, 2, 3], ‘sss‘]
4.删除列表元素:del
例:del 索引的方式
li = ["a","b",6,[1,2,3],"sss"]
del li[3]
print(li)
结果:[‘a‘, ‘b‘, 6, ‘sss‘]
例:del 用切片的方式删除
li = ["a","b",6,[1,2,3],"sss"]
del li[2:4]
print(li)
结果:[‘a‘, ‘b‘, ‘sss‘]
5.可以进行for循环
6.支持in操作
例:查看元素是否在列表中
li = ["a","b",6,[1,2,3],"sss"]
v = "sss" in li
print(v)
结果:True
7.列表转换成字符串:把列表中每个元素拼接成一个元素
例:需要自信写for循环一个一个处理:既有数字又有字符串
li = [11,22,33,"123","maodou"]
r = str(li)
print(r)
s = ""
for i in li:
s = s + str(i)
print(s)
结果:
[11, 22, 33, ‘123‘, ‘maodou‘] ====整个是个字符串
112233123maodou
例:列表中只含有字符串,可以直接使用字符串的join方法
li = ["123","maod"]
v = "".join(li)
print(v)
结果:123maod
例:append() 追加,在原有值后追加 li = [11,22,33,44] li.append(5) print(li) 结果:[11, 22, 33, 44, 5] 例:extend(),扩展原来的列表,参数:是可迭代对象 li = [11, 22, 33, 44] li.extend([888,"88","狗狗"]) print(li) 结果:[11, 22, 33, 44, 888, ‘88‘, ‘狗狗‘] 例:clear() 清空列表 li = [11,22,33,44] li.clear() print(li) 结果:[] 例:copy()复制,拷贝,浅拷贝 li = [11,22,33,44] v = li.copy() print(v) 结果:[11,22,33,44] 例:count()计算元素出现的个数 li = [11,22,33,44] v = li.count(22) print(v) 结果:1 例:index(),根据值获取当前值索引位置,最左优先 li = [11, 22, 33, 44] v = li.index(33) print(v) 结果:2 例:insert()指定索引位置插入 li = [11, 22, 33, 44] li.insert(2,"aa") ===在第3个位置插入字符串aa print(li) 结果:[11, 22, ‘aa‘, 33, 44] 例:pop() 删除某个值,并且获取删除值,默认删除最后一个元素 li = [11, 22, 33, 44] v = li.pop(2) print(li,v) 结果:[11, 22, 44] 33 例:remove()删除列表中某个值,默认左边有限 li = [11, 22, 33, 44] li.remove(33) print(li) 结果:[11, 22, 44] 例:reverse() 将当前列表进行反转 li = [11, 22, 33, 44] li.reverse() print(li) 结果:[44, 33, 22, 11] 例:sort()排序 li = [11, 22, 99,342,33, 44] li.sort() print(li) li.sort(reverse=True) print(li) 结果: [11, 22, 33, 44, 99, 342] [342, 99, 44, 33, 22, 11]
元组:tuple
元组,一级元素不可被修改,不能被增加或者删除
写元组时通常在最后加个”,“,为了区分元组还是方法
元组也可以通过索引,和切片取值
元组可以进行for循环,可迭代对象
元组可以和列表,字符串相互转化,和列表类似
例:count(),获取指定元素在元组中出现的次数 例:index(),获取某个值的位置
字典:dict
key :value
key:布尔值,列表,字典不能作为key值
value:可以是任何值
字典是序的,支持del删除
for循环,默认只有key
例:
info = {
"k1": 18,
"k2": True,
"k3": [11,22,33,
{"kk1":"vv1",
"kk2":(11,22)}
],
"k4": (11,22,33,44)
}
for item in info: ===默认key
print(item)
for item in info.keys(): ===循环key
print(item)
for item in info.values(): ===循环value
print(item)
print(item,info[item]) ===循环key,value
结果:1,2结果相同
k1
k2
k3
k4
18
True
[11, 22, 33, {‘kk1‘: ‘vv1‘, ‘kk2‘: (11, 22)}]
(11, 22, 33, 44)
例:del删除
info = {
"k1": 18,
"k2": True,
"k3": [11,22,33,
{"kk1":"vv1",
"kk2":(11,22)}
],
"k4": (11,22,33,44)
}
del info["k1"]
print(info)
del info["k3"][3]["kk2"]
print(info)
结果:
{‘k2‘: True, ‘k3‘: [11, 22, 33, {‘kk1‘: ‘vv1‘, ‘kk2‘: (11, 22)}], ‘k4‘: (11, 22, 33, 44)}
{‘k2‘: True, ‘k3‘: [11, 22, 33, {‘kk1‘: ‘vv1‘}], ‘k4‘: (11, 22, 33, 44)}
例:
info = {
"k1": 18,
"k2": True,
"k3": [11,22,33,
{"kk1":"vv1",
"kk2":(11.22)}
],
"k4": (11,22,33,44)
}
print(info)
结果:{‘k1‘: 18, ‘k2‘: True, ‘k3‘: [11, 22, 33, {‘kk1‘: ‘vv1‘, ‘kk2‘: 11.22}], ‘k4‘: (11, 22, 33, 44)}
例:通过索引找到"kk2"中的11
info = {
"k1": 18,
"k2": True,
"k3": [11,22,33,
{"kk1":"vv1",
"kk2":(11,22)}
],
"k4": (11,22,33,44)
}
v = info["k3"][3]["kk2"][0]
print(v)
结果:11
例:dict.fromkeys() 根据序列,创建字典,并指定统一值 v = dict.fromkeys(["k1",123,"999"]) v1 = dict.fromkeys(["k1",123,"999"],123) print(v) print(v1) 例:get(),根据key获取值,key不存在时可以指定默认值,不指定默认值为None info = { "k1": 18, "k2": True, "k4": (11,22,33,44) } v = info.get("k1",111) print(v) v1 =info.get("k8",111) print(v1) 结果:18 111 例:pop(),删除并获取值 例:setdefault(),设置值,已存在,获取当前key的值 不存在,进行添加,获取key值 dic = {"k1":"v1","k2":"v2"} v = dic.setdefault("k1",123) print(dic,v) v1 = dic.setdefault("k3",123) print(dic,v1) 结果: {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘} v1 {‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘, ‘k3‘: 123} 123 例:update(),更新 dic = {"k1":"v1","k2":"v2"} dic.update({"k1":"111","k3": 123}) ===dic.update(k1="111",k3=123) print(dic) 结果: {‘k1‘: ‘111‘, ‘k2‘: ‘v2‘, ‘k3‘: 123}
布尔:bool
bool()
None ,"" ,(),[],{},0 都是False
----
以上是关于python开发---运算符&数据类型的主要内容,如果未能解决你的问题,请参考以下文章
python开发基础:生成式&成员运算&解压法&队列堆栈&数据类型转换