运算符与数据类型

Posted xblovepython

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符与数据类型相关的知识,希望对你有一定的参考价值。

一、运算符

1、算数运算

运算符描述实例
+ 加-两个对象相加 a+b 输出结果10
- 减-一个数减另一个数或是负数 a-b 输出结果0
* 乘-两个数相乘或返回一个被重复若干次的字符串 a*b 输出结果25
/ 除-x除以y x/y 输出结果 1
% 取模-返回除法的余数 a%b 输出结果 0
** 幂-返回x的y次幂 a**b 输出结果 3125
// 取整除-返回商的整数部分 9//2 输出结果 4 9.0//2.0输出结果4.0

2、比较运算

技术分享图片

3、赋值运算

技术分享图片

4、逻辑运算

技术分享图片

5、成员运算

技术分享图片

 

注意:注意:当有多个and or执行顺序:从前到后执行

例:
user == "root" pwd == "123"
v = user == "root" and pwd == "123" or 1==2 and pwd == "1234"
True or ====> 直接得到结果为True
True and ====> 继续向后走
False or ====> 继续向后走
False and ====> 直接得到结果为False

 

 

二、基本数据类型(1)

1、数字

python3中数字的类型都由int表示,python2中整形为int,长整型为long

(1)、转换

#int (1)将字符串转换为数字
#a = "123"
#b = int(a)
#print(type(b)) b的类型为数字
#print(type(a)) a的类型为字符串

#num = "c"  c为16进制
#b = int(num,base=16)   base=16 把num字符串以16进制转换为10进制
#print(b)

#age = 10
#1 --> 01        二进制
#2 --> 10
#3 --> 11
#4 --> 100
#5 --> 101
#r = age.bit_length()   #当前数字的2进制至少用几位来表示
#print(r)

2、字符串

#test = "alex"
#v = test.capitalize()#首字母大写
#print(v)

#test = "aLex"
#v1 = test.casefold()#把大写变成小写casefold很多未知的对应关系也可以转换
#v2 = test.lower()#只能转换普通的字母
#print(v1,v2)

#判断是否为小写
#test = "aLeX"
#v = test.islower()   判断
#v1 = test.lower()   转换
#print(v,v1)
#判断是否为大写
#v = test.isupper()  判断
#v1 = test.upper()  转换
#print(v,v1)

#center
#test = "alex"
#def center(self(可以忽略), (设置宽度20,并将内容居中)width(必须带), (内容填充只能填一个字符)fillchar=None(带等于号的可带可不带))
#v = test.center(20,"*")
#print(v)

#ljust、rjust 与center做对比
#ljust将字符串放到左边右面为填充
#rjust将字符串放到右边左面为填充
#test = "alex"
#v = test.ljust(20,"*")
#v1 = test.rjust(20,"*")
#print(v)
#print(v1)

#zfill 只用0填充,字符串放在右侧
#test = "alex"
#v = test.zfill(20)
#print(v)

#count 统计这个字符或子序列出现的个数
#def count(self, sub, (从第几位开始)start=None,(到第几位结束) end=None)
#test = "aLexalex"
#v = test.count(‘l‘,5)
#print(v)

#endswith 以什么结尾 startswith 以什么什么开头
#test = "alex"
#v = test.endswith(‘xle‘)
#v1 = test.startswith(‘a‘)
#print(v,v1)

#从开始往后找,找到第一个之后获取其位置,找不到输出-1;第一位从0开始
#def find(self, sub, start=None, end=None)
#test = "alexalex"
#v = test.find(‘ex‘,5,7)
#print(v)

#index与find作对比,找到输出位置,找不到报错
#test = ‘alexalex‘
#v = test.index(‘e‘,3,7)
#print(v)

#format格式化,将一个字符串中的占位符替换成指定的值
#def format(self, *args, **kwargs):
#test = ‘i am {name}, age {a}‘
#print(test)
#v = test.format(name=‘alex‘,a=19)
#print(v)
#下面的用位置来替换 alex替换0的位置 19替换1的位置
#test = ‘i am {0}, age {1}‘
#print(test)
#v = test.format(‘alex‘,19)
#print(v)

#另一类格式化传入的值( {"name":‘alex‘,"a":‘19‘} )
#test = ‘i am {name}, age {a}‘
#v = test.format_map( {"name":‘alex‘,"a":‘19‘} )
#index 找不到会报错 所以忽略这个魔法8代表取值范围8<=x
#test = "alexalex"
#v= test.index(‘ex‘,8)
#print(v)

#isalnum  判断字符串中是否只包含字母和数字
#test = "usaf890"
#v = test.isalnum()
#print(v)

#expandtabs 断句20个一组,只要出现\\t就会将前边的缺少的部分补齐,如果\\t之前无字符那么\\t会自己占用20个字符
#test = "username\\temail\\tpassword\\nlaiying\\[email protected]\\t123\\nlaiying\\[email protected]\\t123\\nlaiying\\[email protected]\\t123"
#v = test.expandtabs(20)
#print(v)

#是否是字母 是true 否false
#test = "a2lex"
#v = test.isalpha()
#print(v)

#isdigit   支持特殊的数字
#isdecimal  不支持特殊的数字  十进制小数
#上面两个都是判断是否是数字
#test = "②"
#v1 = test.isdecimal()    只能判断数字2的类型
#v2 = test.isdigit()  可以判断特殊格式的②
#v3 = test.isnumeric() 可以判断汉字二
#print(v1,v2)

#大小写转换,大写变为小写,小写变为大写
#test = "aLex"
#v = test.swapcase()
#print(v)

#是否存在不可见的不可显示的字符如**\\t \\n** 如果存在输出false否则为true
#test = "asfuhafjfuasda"
#v = test.isprintable()
#print(v)

#isspace 是否全部是空格
#test = " "
#v = test.isspace()
#print(v)

#istitle 判断是否是标题;就是每个单词首字母是否大写;是输出true否则输出false
#title 将字符串替换成标题的格式
#test = "Asfaf sd"
#v1 = test.title()     输出Asfaf Sd
#print(v1)
#v = test.istitle()   输出false
#print(v)

#join 以前边的参数作为两个字符的链接符 将字符串中的每一个元素按照指定分隔符进行拼接
#test = "你是风儿我是沙"
#print(test)
#t = ‘ ‘
#v = t.join(test)
#print(v)

#去除左右空白
#去除\\t \\n
#去除字符
#test = "  alexalexxa  "
#test = " \\talex  "
#test = " \\nalex  "
#test1 = "alexalexxa"
#v = test1.lstrip("a") 安装括号内匹配去除;将a去掉,输出lexalexxa,注意括号内会从左匹配到右,如果字符串中出现括号中没有的子集就停止。
#v = test.lstrip()    去除左
#v1 = test.rstrip()  去除右
#v2 = test.strip()   全部去除
#print(v2)

#maketrans 与translate
#test = "aeiou"
#test1 = "45678"
#m = str.maketrans("aeiou","45678")  #创建对应关系
#v = "asfhjgasfauihqawjdsaaufka"
#new_v = v.translate(m)   #利用所创建的对应关系将aeiou替换成45678
#print(new_v)

#partition、rpartition保存分割的元素、split、rsplit 不保存分割的元素
#test = ‘testadasafasfasf‘
#test.partition()   按照括号内的字符分割,找到第一个s就进行分割 从左向右;分割为三部分,只可以传递分割的参数
#v = test.partition(‘s‘)
#print(v)
#test.rpartition()   与partition应用相同,从右向左
#v = test.rpartition(‘s‘)
#print(v)
#test.split()  按照括号内的字符分割,将找到的分割符显示成逗号,后面可加参数,参数的意思为分几次,从左开始
#v = test.split(‘s‘,3)
#print(v)
#test.rsplit()  与split相同,从右开始
#v = test.rsplit(‘s‘,3)
#print(v)

#splitlines 按照换行符进行分割True 保存换行符 False不保存
#test = "asfasfaasf\\nafsagsgg\\nasfasfsaf"
#v = test.splitlines(True)
#print(v)

################7个基本方法##########################
join split strip upper lower find replace
###################################################

################高级方法##########################
# test = "alex"
#[] 里面单个数字代表下表,索引 获取字符串中某一个字符
# v = test[0]
# print(v)
#0:1 代表范围 0<= x<1 切片 -号代表从最后开始最后一位可以为-1
# v = test[0:-2]
# print(v)

#python3中 len代表字符串中有几个字符  py2中一个汉字由3个字节组成 结果为9
# test = "张小华"
# v = len(test)
# print(v)
#len 和join在其他数据类型也可用到

# test = "郑建文妹子有种冲我来"
# a = 0
# while a < len(test):
#     v = test[a]
#     print(v)
#     a += 1
# print("end")

#for循环  语法: for 变量名 in 字符串(代码块):
                        #print(变量名)
# 逐个打印
# for itm in test:
#     print(itm)

# for循环
#len("asdadas")
#索引
#切片
####################12个数据方法#####################
#后补充的方法
# replace 替换,源字符 ,新字符,替换几个(可加可不加 不加为全部替换)
# test = "alexalexalex"
# v = test.replace("ex","ccc",1)
# print(v)

# test = "郑建文妹子有种冲我来"

# for item in test:
#     print(item)
#     break
# for item in test:
#     print(item)
#     continue
#py2  range(100)范围为0<=x<100 内存中立即创建0-99  py3中没有创建
#range 创建连续数字 也可以设置步长指定不连续
# v = range(0,100,5)
# v = range(100)
# for item in v:
#     print(item)

 

#test = "alex"
#v = test.capitalize()#首字母大写
#print(v)

#test = "aLex"
#v1 = test.casefold()#把大写变成小写casefold很多未知的对应关系也可以转换
#v2 = test.lower()#只能转换普通的字母
#print(v1,v2)

#判断是否为小写
#test = "aLeX"
#v = test.islower()   判断
#v1 = test.lower()   转换
#print(v,v1)
#判断是否为大写
#v = test.isupper()  判断
#v1 = test.upper()  转换
#print(v,v1)

#center
#test = "alex"
#def center(self(可以忽略), (设置宽度20,并将内容居中)width(必须带), (内容填充只能填一个字符)fillchar=None(带等于号的可带可不带))
#v = test.center(20,"*")
#print(v)

#ljust、rjust 与center做对比
#ljust将字符串放到左边右面为填充
#rjust将字符串放到右边左面为填充
#test = "alex"
#v = test.ljust(20,"*")
#v1 = test.rjust(20,"*")
#print(v)
#print(v1)

#zfill 只用0填充,字符串放在右侧
#test = "alex"
#v = test.zfill(20)
#print(v)

#count 统计这个字符或子序列出现的个数
#def count(self, sub, (从第几位开始)start=None,(到第几位结束) end=None)
#test = "aLexalex"
#v = test.count(‘l‘,5)
#print(v)

#endswith 以什么结尾 startswith 以什么什么开头
#test = "alex"
#v = test.endswith(‘xle‘)
#v1 = test.startswith(‘a‘)
#print(v,v1)

#从开始往后找,找到第一个之后获取其位置,找不到输出-1;第一位从0开始
#def find(self, sub, start=None, end=None)
#test = "alexalex"
#v = test.find(‘ex‘,5,7)
#print(v)

#index与find作对比,找到输出位置,找不到报错
#test = ‘alexalex‘
#v = test.index(‘e‘,3,7)
#print(v)

#format格式化,将一个字符串中的占位符替换成指定的值
#def format(self, *args, **kwargs):
#test = ‘i am {name}, age {a}‘
#print(test)
#v = test.format(name=‘alex‘,a=19)
#print(v)
#下面的用位置来替换 alex替换0的位置 19替换1的位置
#test = ‘i am {0}, age {1}‘
#print(test)
#v = test.format(‘alex‘,19)
#print(v)

#另一类格式化传入的值( {"name":‘alex‘,"a":‘19‘} )
#test = ‘i am {name}, age {a}‘
#v = test.format_map( {"name":‘alex‘,"a":‘19‘} )
#index 找不到会报错 所以忽略这个魔法8代表取值范围8<=x
#test = "alexalex"
#v= test.index(‘ex‘,8)
#print(v)

#isalnum  判断字符串中是否只包含字母和数字
#test = "usaf890"
#v = test.isalnum()
#print(v)

#expandtabs 断句20个一组,只要出现\\t就会将前边的缺少的部分补齐,如果\\t之前无字符那么\\t会自己占用20个字符
#test = "username\\temail\\tpassword\\nlaiying\\[email protected]\\t123\\nlaiying\\[email protected]\\t123\\nlaiying\\[email protected]\\t123"
#v = test.expandtabs(20)
#print(v)

#是否是字母 是truefalse
#test = "a2lex"
#v = test.isalpha()
#print(v)

#isdigit   支持特殊的数字
#isdecimal  不支持特殊的数字  十进制小数
#上面两个都是判断是否是数字
#test = "②"
#v1 = test.isdecimal()    只能判断数字2的类型
#v2 = test.isdigit()  可以判断特殊格式的②
#v3 = test.isnumeric() 可以判断汉字二
#print(v1,v2)

#大小写转换,大写变为小写,小写变为大写
#test = "aLex"
#v = test.swapcase()
#print(v)

#是否存在不可见的不可显示的字符如**\\t \\n** 如果存在输出false否则为true
#test = "asfuhafjfuasda"
#v = test.isprintable()
#print(v)

#isspace 是否全部是空格
#test = " "
#v = test.isspace()
#print(v)

#istitle 判断是否是标题;就是每个单词首字母是否大写;是输出true否则输出false
#title 将字符串替换成标题的格式
#test = "Asfaf sd"
#v1 = test.title()     输出Asfaf Sd
#print(v1)
#v = test.istitle()   输出false
#print(v)

#join 以前边的参数作为两个字符的链接符 将字符串中的每一个元素按照指定分隔符进行拼接
#test = "你是风儿我是沙"
#print(test)
#t = ‘ ‘
#v = t.join(test)
#print(v)

#去除左右空白
#去除\\t \\n
#去除字符
#test = "  alexalexxa  "
#test = " \\talex  "
#test = " \\nalex  "
#test1 = "alexalexxa"
#v = test1.lstrip("a") 安装括号内匹配去除;将a去掉,输出lexalexxa,注意括号内会从左匹配到右,如果字符串中出现括号中没有的子集就停止。
#v = test.lstrip()    去除左
#v1 = test.rstrip()  去除右
#v2 = test.strip()   全部去除
#print(v2)

#maketrans 与translate
#test = "aeiou"
#test1 = "45678"
#m = str.maketrans("aeiou","45678")  #创建对应关系
#v = "asfhjgasfauihqawjdsaaufka"
#new_v = v.translate(m)   #利用所创建的对应关系将aeiou替换成45678
#print(new_v)

#partition、rpartition保存分割的元素、split、rsplit 不保存分割的元素
#test = ‘testadasafasfasf‘
#test.partition()   按照括号内的字符分割,找到第一个s就进行分割 从左向右;分割为三部分,只可以传递分割的参数
#v = test.partition(‘s‘)
#print(v)
#test.rpartition()   与partition应用相同,从右向左
#v = test.rpartition(‘s‘)
#print(v)
#test.split()  按照括号内的字符分割,将找到的分割符显示成逗号,后面可加参数,参数的意思为分几次,从左开始
#v = test.split(‘s‘,3)
#print(v)
#test.rsplit()  与split相同,从右开始
#v = test.rsplit(‘s‘,3)
#print(v)

#splitlines 按照换行符进行分割True 保存换行符 False不保存
#test = "asfasfaasf\\nafsagsgg\\nasfasfsaf"
#v = test.splitlines(True)
#print(v)

#startswith 以什么什么开头
#endswith   以什么什么结尾
#test = "backend 1.1.1.1"
#v = test.startswith("aa")
#v = test.endswith(‘.1‘)
#print(v)





以上是关于运算符与数据类型的主要内容,如果未能解决你的问题,请参考以下文章

运算符数据类型转换和注释

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。

学习笔记1(三元运算深浅拷贝动态参数全局变量与局部变量set数据类型 )

数据类型和运算符

数据聚合与分组运算