Python 变量和运算符与表达式

原创
04/08 17:12
阅读数 7

一、表达式

        表达式:由变量、常量和运算符组成的式子称为表达式。我们阅读一个表达式,主要关心阅读表达式的功能和阅读表达式的值。

1、算术运算符与算术运算表达式

# 算术运算符与算术运算表达式
'''
算术运算符:
    +  -  *  /  %    **   //
    加 减 乘 除 取模 求幂 取整
'''
'''
算术运算表达式
    功能:进行符号对应的算术运算,不会修改变量的值
    值:相关算术运算的结果
'''
num1 = 20
num2 = 3
print(num1 + num2)
print(num1 - num2)
print(num1 * num2)
print(num1 / num2)
print(num1 % num2)
print(num1 ** num2)
print(num1 // num2)

2、赋值运算符和赋值运算表达式

'''
赋值运算符  =
'''
'''
赋值运算表达式
    格式:变量 = 表达式
    功能:计算右侧表达式的值,并赋值给等号左侧的变量
    值:赋值结束后变量的值
'''
num3 = 10
num4 = num3 + 2

3、复合运算符

'''
复合运算符:
    +=   -=    *=   /=    %=    **=    //=
    a += b  -->  a = a + b 
    a -= b  -->  a = a - b
    a *= b  -->  a = a * b
    a /= b  -->  a = a / b
    a %= b  -->  a = a % b
    a **= b  -->  a = a ** b
    a //= b  -->  a = a // b   
'''

4、位运算符

'''
位运算符:
    &  按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位结果为1,否则为0

    |  按位或运算符:参与运算的两个值,如果两个相应位有一个为1时,则该位结果为1,否则为0

    ^  按位异或运算符:参与运算的两个值,如果两个相应不同时,则该位结果为1,否则为0

    ~  按位取反运算符:对数据的每个二进制位进行取反操作,把1变为0,把0变为1

    << 左移运算符:运算数的各二进制全部左移若干位,由<<右侧数字指定移动位数,高位丢弃,低位补0
    >> 右移运算符:运算数的各二进制全部右移若干位,由>>右侧数字指定移动位数
'''
print(5 & 7)
print(5 | 7)
print(5 ^ 7)
print(~5)
print(2 << 2)
print(11 >> 2)

5、条件判断

'''if语句

格式:
if 表达式:
    语句

逻辑:当程序运行到if语句时,首先计算“表达式”的值,如果表达式的值为真,则执行“语句”,如果表达式的值为假,则结束if语句继续向下执行

何为真假?
    假:0  0.0  ''  None  False
    真:除了假就是真
'''
if 0:
    print("martin is a good woman!")

'''
if-else语句
格式:
if 表达式:
    语句1
else:
    语句2

逻辑:当程序运行到if-else语句时,首先计算“表达式”的值,如果表达式的值为真,则执行语句1。如果表达式的值我假,则执行语句2
'''
flag = int(input("请输入0或者1:"))
if flag:
    print("martin is a good woman!")
else:
    print("martin is a cool woman!")

6、关系运算符与关系运算表达式



	
'''
关系运算符
    ==     !=      >    <    >=       <=
    等于   不等于  大于 小于 大于等于 小于等于
'''
'''
关系运算表达式
格式:表达式1 关系运算符 表达式2
功能:计算表达式1和表达式2的值
值:
    如果关系成立,则整个关系运算表达式的值为真,如果关系不成立,则整个关系运算表达式的值为假
'''
if 1==1:
    print("martin is a handsome woman!")

7、逻辑运算符

'''
逻辑运算符
    逻辑与    逻辑或   逻辑非
'''

'''
逻辑与运算符         and

逻辑与运算表达式   
    格式:表达式1 and 表达式2
    功能:首先计算“表达式1”的值,若表达式1的值为真则计算“表达式2”的值
    值:
        1、如果表达式1的值为真,表达式2的值为真,则逻辑与运算表达式的值为真
        2、如果表达式1的值为真,表达式2的值为假,则逻辑与运算表达式的值为假
        3、如果表达式1的值为假,表达式2的值为真,则逻辑与运算表达式的值为假
        4、如果表达式1的值为假,表达式2的值为假,则逻辑与运算表达式的值为假
        总结:有一个为假就为假
'''
a = 2
b = 1
if a - 1 and b + 1:
    print("sunck is a good man!")
else:
    print("sunck is a nice man!")



'''
逻辑或       or
逻辑或运算表达式  
    格式:表达式1 or 表达式2
    功能:首先计算“表达式1”的值,如果表达式1的值为假,则继续计算“表达式2”的值
    值:
        1、如果表达式1的值为真,表达式2的值为真,则逻辑或运算表达式的值为真
        2、如果表达式1的值为真,表达式2的值为假,则逻辑或运算表达式的值为真
        3、如果表达式1的值为假,表达式2的值为真,则逻辑或运算表达式的值为真
        4、如果表达式1的值为假,表达式2的值为假,则逻辑或运算表达式的值为假
        总结:有一个为真就为真
'''
c = 2
d = 1
if c - 1 or print("123"):
    print("sunck is a very good man!")
else:
    print("sunck is a very nice man!")



'''逻辑与、逻辑或的特性
短路原则:
    表达式1 and 表达式2 and 表达式3 and …… and 表达式n
        从左至右依次计算表达式的值,直到遇到某个表达式的值为假就停止计算
    表达式1 or 表达式2 or 表达式3 or …… or 表达式n
        从左至右依次计算表达式的值,直到遇到某个表达式的值为真就停止计算
'''



'''
逻辑非   not

逻辑非运算表达式
    格式:not 表达式
    值:
        1、如果“表达式”的值为真,则逻辑非运算表达式的值为假
        2、如果“表达式”的值为假,则逻辑非运算表达式的值为真
        总结:颠倒黑白
'''
e = 1
if not e:
    print("sunck is a very very good man!")
else:
    print("sunck is a very very nice man!")

8、运算符

'''
成员运算符
    格式: x in seq        x not in seq
in:如果在指定的序列中找到值则返回真,否则返回假
not in:如果在指定的序列中没有找打值则返回真,否则返回假
'''


'''
身份运算符
    格式: obj1 is obj2      obj1 is not obj2
is:判断两个标识符是否引用同一个对象,相同返回真,否则返回假
is not:判断两个标识符是否引用不同对象,不同返回真,否则返回假
'''




'''
运算符的优先级:
**              指数
~ + -           按位取反和一元加减号
*  /  %  // 
+ -             加法减法
<<  >>
&
| ^
<  >  <=  >=
==  !=   <>
=  *=  /=  %=  //%  +=  -=  **=
is       is not
in       not in
and or not
'''

二、字符串与布尔和空值

1、字符串

# -*- coding:utf-8 -*-
'''
什么是字符串?
    字符串是以单引号或者双引号括起来的任意文本,比如'martin is a good man'或者"martin is a nice man"。但是要注意引号本身是一种表现形式,不属于字符串的一部分。
    注意:如果字符串本身带双引号    'martin is a "very" good man'
'''

#创建字符串
str1 = 'martin is a good man'
str2 = "martin is a nice man"


'''字符串运算'''
# 字符串拼接
str3 = 'martin is a good man'
str4 = "martin is a nice man"
print(str3 + str4)
#重复输出字符串
print(str3 * 3)
# 通过索引下标获取字符串中的字符,索引从0开始(程序员放羊)   str[index]
print(str3[1])
# 截取字符串中的一部分  切片编程
print("*"+str3[11:15]+"*")
print("*"+str3[11:]+"*")
print("*"+str3[:15]+"*")
# 判断字符串中是否存在某些内容
print("kaige" in str3)


'''
格式化输出(占位符)
%s  格式化字符串  
%d  格式化整数
%f  格式化浮点数,可以指定小数点后的精度,默认保留小数点后6位
'''
name = "martin"
age = 18
height = 173.5
#    martin is a good man, he is 18 years old, his height is 173.5cm.
print(name, "is a good man, he is", age, "years old, his height is", height, "cm.")
#如果只有一个替换,可以不写%后面的小括号,但是建议还是不要省略
print("%s is a good man, he is %d years old, his height is %.2fcm."%(name, age, height))
weight=75
print("*%d*"%(weight))
print("*%5d*"%(weight))
print("*%-5d*"%(weight))
print("*%.5d*"%(weight))




'''
常用转义字符    
反斜杠     \\
单引号      \'
双引号     \"
换行       \n
横向制表符  \t
'''
str5 = '\\'
print(str5)
str6 = "martin is a \"very\" good man"
print(str6)
print("martin is\na good man")
# 如果字符串内部有过个换行,用\n写在一行里非常利于阅读
print("martin\nis\na\ngood\nman")
print('''
line1
line2
line3
line4
''')
print("martin\tgood")
# 如果字符串里面有很多字符需要转义,就需要加入很多\,为了简化,python允许使用r''表示''内部的字符串默认不转义
print('\\\t\\')
print(r'\\\t\\')

2、String的内置函数

# -*- coding:utf-8 -*-
'''
原型:
功能:
参数:
'''
# eval()
'''
原型:eval(*args, **kwargs)
功能:将字符串当成有效的表达式来求值并返回计算结果
参数:
'''
num1 = eval("123")
print(num1)
print(type(num1))
print(eval("+123"))
print(eval("-123"))
print(eval("12+3"))
print(eval("12-3"))
# print(eval("a123"))
# print(eval("12a3"))
abc = "123"
print(eval("abc"))



# len(string)
'''
原型:
功能:返回字符串的长度(按字符个数计算)
参数:
'''
print(len("martin is a good man"))
print(len("martin is a good man马丁"))

# lower()
'''
原型:
功能:转换字符串中所有的大写字母为小写
参数:
'''
str1 = "martin Is A Good maN"
str2 = str1.lower()
print(str1, str2)
# upper()
'''
原型:
功能:转换字符串中所有的小写字母为大写
参数:
'''
# swapcase()
'''
原型:
功能:将字符串中大写转为小写,小写转为大写
参数:
'''
str3 = "martin Is A Good maN"
str4 = str3.swapcase()
print(str3, str4)
# capitalize()
'''
原型:
功能:将字符串中第一个字符转为大写,其余转为小写
参数:
'''
str5 = "martin Is A Good maN"
str6 = str5.capitalize()
print(str5, str6)
# title()
'''
原型:
功能:得到“标题化”的字符串,每个单词的首字符大写,其余小写
参数:
'''
str7 = "martin Is A Good maN"
str8 = str7.title()
print(str7, str8)


# center(width[, fillchar])
'''
原型:
功能:返回一个指定宽度width的居中字符串,fillchar为填充字符,默认为空格
参数:
'''
str9 = "good"
str10 = str9.center(20, "#")
print("*"+str10+"*")
# ljust(width[, fillchar])
'''
原型:
功能:返回一个指定宽度width的左对齐字符串,fillchar为填充字符,默认为空格
参数:
'''
str11 = "good"
str12 = str11.ljust(20, "#")
print("*"+str12+"*")
# rjust(width,[, fillchar])
'''
原型:
功能:返回一个指定宽度width的右对齐字符串,fillchar为填充字符,默认为空格
参数:
'''
# zfill (width)
'''
原型:
功能:返回指定宽度width的右对齐字符串,填充0
参数:
'''
str13 = "good"
str14 = str13.zfill(20)
print("*"+str14+"*")


# count(str[, beg= 0,end=len(string)])
'''
原型:
功能:返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数
参数:
'''
str15 = "martin"
str16 = "martin is a good man! martin is a nice man"
print(str16.count(str15,0,20))
# find(str[, beg=0 end=len(string)])
'''
原型:
功能:检测str是否包含在string中,如果指定beg和end,则检测指定范围内是否包含。如果包含返回第一个开始的索引值,否则返回-1
参数:
'''
str17 = "martin"
str18 = "cool"
str19 = "aaamartin is a good man! martin is a nice man"
res = str19.find(str18)
print(res)


# index(str[, beg=0, end=len(string)])
'''
原型:
功能:跟find()一样,区别在于如果str不存在会报异常
参数:
'''
str20 = "martin"
str21 = "cool"
str22 = "aaamartin is a good man! martin is a nice man"
res = str22.index(str20)
print(res)
# rfind(str[, beg=0,end=len(string)])
'''
原型:
功能:类似于find(),只不过从右边开始查找
参数:
'''
# rindex(str[, beg=0, end=len(string)])
'''
原型:
功能:类似于index(),只不过从右边开始查找
参数:
'''


# lstrip()
'''
原型:
功能:截掉字符串左边指定的字符,默认为空格
参数:
'''
str23 = "    martin is a good man"
str24 = str23.lstrip()
print(str23)
print(str24)
str25 = "*****martin is a good man"
str26 = str25.lstrip("*")
print(str25)
print(str26)
# rstrip()
'''
原型:
功能:截掉字符串右边指定的字符,默认为空格
参数:
'''
# strip([chars])
'''
原型:
功能:在字符串上执行lstrip和rstrip
参数:
'''
str27 = "*****martin is a good man**"
str28 = str27.strip("*")
print(str27)
print(str28)

# split(str="", num=string.count(str))
'''
原型:
功能:split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
参数:
'''
str29 = "martin#is#a#good#man"
wordList = str29.split("#")
print(wordList)
print(type(wordList))
# splitlines([keepends])
'''
原型:
功能:按照行('\r','\r\n','\n'),如果keepends为False,不包含换行符,否则保留换行符
参数:
'''
str30 = '''good
nice
cool
handsome
'''
wordList2 = str30.splitlines()
print(wordList2)
# join(seq)
str31 = " ".join(wordList)
print(str31)
'''
原型:
功能:
参数:
'''

# max(str)
'''
原型:
功能:返回字符串中最大的字母
参数:
'''
str32 = "martin is a good man"
print(max(str32))
# min(str)
'''
原型:
功能:返回字符串中最小的字母
参数:
'''
# replace(old, new [, max])
'''
原型:
功能:将字符串中的old替换成new,如果max指定,则替换不超过max次
参数:
'''
str33 = "martin is a good man, martin is a nice man, martin is a cool man"
str34 = str33.replace("martin", "kaige")
print(str34)

# maketrans()
'''
原型:
功能:创建字符映射的转换表,对于接受两个参数的,第一个是字符串,表示要转换的字符,第二个也是字符串表示转换的目标
参数:
'''
t = str.maketrans("ag", "12")
# translate(table)
'''
原型:
功能:根据str给出的表转换字符串
参数:
'''
str35 = "martin is a good manag"
print(str35.translate(t))

# isalpha()
'''
原型:
功能:如果字符串至少有一个字符并且所有的字符都是字母返回True,否则返回假
参数:
'''
print("".isalpha())
print("abc".isalpha())
print("abc12".isalpha())

# isalnum()
'''
原型:
功能:如果字符串至少有一个字符并且所有的字符都是字母或数字返回True,否则返回假
参数:
'''
print("".isalnum())
print("abc".isalnum())
print("abc12".isalnum())
# isupper()
'''
原型:
功能:如果字符串至少有一个字符并且所有的字母都是大写字母返回True,否则返回假
参数:
'''
print("martin".isupper())
print("martin".isupper())
print("martin#$%".isupper())
print("martin123".isupper())
print("".isupper())
# islower()
'''
原型:
功能:如果字符串至少有一个字符并且所有的字母都是小写字母返回True,否则返回假
参数:
'''
# istitle()
'''
原型:
功能:如果字符串是标题化的返回True,否则返回False
参数:
'''
# isdigit()
'''
原型:
功能:如果字符串只包含数字返回True,否则返回False
参数:
'''
print("".isdigit())
print("123".isdigit())
print("abc123".isdigit())
# isnumeric()
'''
原型:
功能:如果字符串只包含数字返回True,否则返回False
参数:
'''
# isdecimal()
'''
原型:
功能:检测字符串是否只包含十进制数字
参数:
'''
# isspace()
'''
原型:
功能:如果字符串中只含有空格则返回True,否则返回False
参数:
'''
print("".isspace())
print("   ".isspace())
print(" a".isspace())
print("\t".isspace())
print("\n".isspace())

print("--------------------")
# startswith(str[, beg=0,end=len(string)])
'''
原型:
功能:检查字符串是否以str开头,是则返回True, 否则返回False。如果指定了beg和gend,则在指定范围内检查
参数:
'''
str40 = "martin is a good man"
print(str40.startswith("good"))
# endswith(suffix[, beg=0, end=len(string)])
'''
原型:
功能:检查字符串是否以suffix结尾,是则返回True, 否则返回False。如果指定了beg和gend,则在指定范围内检查
参数:
'''

# encode(encoding='UTF-8',errors='strict')
'''
原型:
功能:以encoding指定的编码格式进行编码,如果出错默认报一个ValueError异常,除非errors指定的是igonre或者replace
参数:
'''
str41 = "马丁哥是一个好男人"
str42 = str41.encode()
str43 = str41.encode("GBK") #gb2312
print(str41)
print(str42)
print(str43)
# bytes.decode(encoding="utf-8", errors="strict")
'''
原型:
功能:解码
参数:
'''
print(str42.decode("utf-8"))
print(str43.decode("GBK"))

# ord()
'''
原型:
功能:获取字符的整数表示
参数:
'''
print(ord("A"))
print(ord("马丁"))
# chr()
'''
原型:
功能:把数字编码转为对应的字符
参数:
'''
print(chr(65))
print(chr(20975))
# str()
'''
原型:
功能:转成字符串
参数:
'''
print(str(123))
print(str(123.1))
print(type(str(True)))

3、布尔值和空值

# -*- coding:utf-8 -*-
'''
布尔值:一个布尔值只有True、False两种值,要么是True,要么是False
作用:作为真假的判断
'''
b = True
c = False
print(b, c)
print(type(b), type(c))



'''
空值:是python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的控制,没有实际意义。
作用:定义个变量时,不知道初始值要赋值成什么,那么就赋值为None,当有确定值在进行赋值操作。
'''
d = None
print(d)
print(type(d))

4、变量的类型问题

# -*- coding:utf-8 -*-
# 变量的类型要根据对应的数据来判断具体是什么类型的,变量的类型是变化的。
a = None
a = 1
a = "sunck"
a = False
print(type(a))

————————————————
版权声明:本文为【PythonJsGo】博主的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
博主主页:https://my.oschina.net/u/3375733

本篇文章同步在个人公众号:

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部