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开发基础:生成式&成员运算&解压法&队列堆栈&数据类型转换

python基础[1]——python运算符&python数据类型之数值型

Python3基本数据类型之int&str

Python 数据类型&if&while

Python开发第三篇:Python基本数据类型

Python开发第二篇:Python基本数据类型