2021-03-13

print('-------------------------------------------------')
# 2.4 Python 运算符
# Python运算式包括操作数和运算符
# Python的运算符包括:算数运算符,关系(比较)运算符,赋值运算符,逻辑运算符,位运算符,成员运算符,身份运算符,运算符优先级等运算符。
# 2.4.1 算术运算符:+ - * / %(取模) **(乘方) //(取整除)
# 实例
'''
a=51
b=5
c=10
print(a+b) # 加
print(a-c) # 减
print(b*c) # 乘
print(c/a) # 除
print(a%b) # 取模
print(a**b) # 乘方
print(51//5) # 除取整(向下)
# 测试完毕
'''

# 2.4.2 比较运算符
# == != > < >= <=
# 返回一个布尔值(true or false)多用于循环语句
# 实例
# a=15;b=45;c=a
# print(a==b) # 返回false
# print(a==c) # 返回true
# print(a<b) # 返回true
# print(a>b) # 返回false
# print(a>=b) # false
# print(b<=c) # false
# print(a!=b) # 返回true
# if(a==b):
#     print('1--a等于b')
# else:
#     print('1--a不等于b')
# 测试完毕

# 2.4.5 Python 赋值运算符
# = += *= /= %= **= //= :=(海象运算符)
# 实例
'''
a=45
b=6
c=0
c=a+b
print('1--c的值为:',c)
c+=a  # c=c+a
print('2--c的值为:',c)
c*=b # c=c*b
print('3--c的值为:',c)
c/=a # c=c/a
print('4--c的值为:',c)
c%=a # c=c%a
print('5--c的值为:',c)
c**=b # c=c**b
print('6--c的值为:',c)
c//=a  # c=c//a
print('7--c的值为:',c)
# 输出结果为
# 1--c的值为: 51
# 2--c的值为: 96
# 3--c的值为: 576
# 4--c的值为: 12.8
# 5--c的值为: 12.8
# 6--c的值为: 4398046.511104002
# 7--c的值为: 97734.0
# 测试完毕
'''

# Python 位运算符
# 位运算为把数字看做二进制进行运算的
# 运算符
# & (与运算,两个对应位均为1,则对应位结果为1,否则为0)
# | (或运算,对应位有一个为1则结果为1)
# ^ (异或运算,对应位不同时为1,相同时为0)
# ~ (取反运算,把数据的每个二进制位取反,0变1,1变0)
# << (左移动运算,各二进制位左移动若干位 语法:<<x x指示左移位数 高位丢弃 低位补零)
# >> (右移动运算,其他同上)
# 实例
# a=60  # 0011 1100
# b=12  # 0000 1100
# c=0
# c=a&b # 与
# print('a&b的值为:',c) # 输出为12 0000 1100
# c=a|b # 或
# print('a|b的值为:',c) # 输出为60 0011 1100
# c=a^b # 异或
# print('c^b为:',c) # 输出为48 0011 0000
# c=~a # 取反
# print('~a为:',c) # 输出为-61 1100 0011
# c=a<<2 # 左移2位
# print('a<<2为:',c) # 输出为 240 1111 0000
# c=a>>2 # 右移2位
# print('a>>2为:',c) # 输出为15 0000 1111
# 测试完毕

# Python 逻辑运算符
# and 布尔与,语法:x and y 如果x为false,返回x的值 否则返回y的值
# or 布尔或,语法: x and y 如果x为true,返回x的值,否则返回y的值
# not 布尔非,语法: not x 如果x为true,返回false,x为false,返回true
# 实例
# a=60
# b=20
# if(a and b):
#     print('1--a与都为true')
# else:print('1--a与b有一个不为true') # 输出为1--a与都为true
#
# if(a or b):
#     print('2--a与b有一个为true')
# else:print('2--a与b都不为true') # 输出为2--a与b有一个为true
#
# # 修改a的值
# a=0
# if(a and b):
#     print('3--a与b均为true')
# else:print('3--a与b有一个不为true')
#
# if(a or b):
#     print('4--a与b有一个为true')
# else:print('4--a与b均为false')
#
# if(not(a and b)):
#     print('5--a与b有一个false或均为false')
# else:print('5--a与b均为true')
# 测试完毕

# Python成员运算符
# in 在指定序列找到值返回true,否则返回false
# not in 在指定序列找不到值返回true,否则返回false
# 实例
# a=10;b=23
# c=[10,56,123]
# if(a in c):
#     print('1--a在c中')
# else:print('1--a不在c中')
#
# if(b not in c):
#     print('2--b不在c中')
# else:print('2--b在c中')
# 测试完毕

# Python身份运算符
# is 判断两个标识符是否引用自一个对象 语法:x is y x与y引用自一个对象则返回true 否则返回false 类似 id(x)=id(y)
# is not 判断两个标识符是否引用自不同的对象 来自不同的对象返回true 相同的对象返回false 类似 id(x)!=id(y)
# a='wdnmd'
# b='wdnmd'
# if(a is b):
#     print('a与b有相同的标识')
# else:print('a与b没有相同的标识')
# # 修改值
# b='wdnmddqz'
# if(a is not b):
#     print('a与b没有相同的标识')
# else:print('a与b有相同的标识')
# 测试完毕

# 运算符优先级(从上到下优先级逐渐降低)
# **    指数 (最高优先级)
# ~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
# * / % //  乘,除,求余数和取整除
# + -   加法减法
# >> << 右移,左移运算符
# & 位 'AND'
# ^ |   位运算符
# <= < > >= 比较运算符
# == != 等于运算符
# = %= /= //= -= += *= **=  赋值运算符
# is is not 身份运算符
# in not in 成员运算符
# not and or    逻辑运算符

#  Python 数字 Python数字类型用来存储数值 数据类型不允许改变 如果改变数字类型的值 将会重新分配内存
#  变量赋值:变量名=数值 删除变量:del 变量名1,变量名2...
#  实例
# a=10;b=2.3
# print(id(a)) #2198967773776
# print(id(b)) #2198971885040
# # 改变数值
# a=12.3;b=20
# print(id(a)) #3163942259632
# print(id(b)) #3163935501200
# 删除测试
# del a,b
# print(id(a))
# print(id(b)) # 输出报错 name 'a' is not defined 删除完成
# 测试完毕

#  Python 支持三种数据类型 整形 浮点型 复数
# 复数测试
# a=2+5j
# print(a.imag) # 输出实部
# print(a.real) # 输出虚部 输出的为浮点数
# 测试完毕

#  Python数字类型转换
# python 不支持将复数转换为浮点型
# 实例
# a=2+5j
# b=float(a) # 报错:TypeError: can't convert complex to float

#  Python数字运算
#  在整数除法中,除法总是返回一个浮点数,如果想要得到整数,可以使用//,可以得到一个舍弃小数部分的整数
# 实例
# a,b=60,13
# print(a/b) # 输出为4.615384615384615
# print(a//b) # 输出为 4
# //并不一定得到整型的数字,与分子分母的类型有关

# 变量使用前必须定义 不提前定义就使用就会报错

# 不同类型的变量混合运算会将整型数转化为浮点数
# 交互模式中 最后输出的表达式结果赋值给变量‘-’
# 交互模式如下
# >>> a=12.5
# >>> b=2
# >>> a*b
# 25.0
# >>> print(b+_)
# 27.0
# >>> print(_)
# 25.0
# >>>

#  Python数学函数
#
import  math # 导入math库
print(abs(-10)) # 绝对值
print(math.ceil(4.3)) # 向上取整
print(math.exp(3)) # 返回e的x次幂
print(math.fabs(-20)) # 返回数字的绝对值 返回值为浮点数
print(math.floor(1.2)) # 向下取整
print(math.log(math.e));print(math.log(100,10)) #计算对数函数的值 第二个参数为底数
print(math.log10(100)) # 返回以10为基底x对数的值
print(max(100,200,400)) # 返回一个最大值
print(min(12.2,1.56,12.22)) # 返回一个最小值
print(math.modf(10.23)) # 返回一个浮点数的整数和小数部分
print(math.pow(10,3)) # 计算x**y的值
print(round(10.3)) # 返回一个浮点四舍五入的值
print(round(10.23254,4)) # 指定四舍五入后的位数
print(math.sqrt(25)) # 算数平方根

#  Python随机数函数
import random
print(random.choice(range(10))) #从序列函数中挑选一个函数
print(random.randrange(2,20))  #随机生成指定范围中的一个数
print(random.random()) #生成[0,1)内的一个实数
# print(random.seed(2)) #改变随机数生成的种子
print(random.shuffle([1,2,3,4,5])) #列表随机排序
print(random.uniform(1,100)) #随机生成指定范围的实数

#  Python 三角函数
print(math.acos(0)) #返回x的反余弦值
print(math.asin(1)) # 返回x的反正弦值
print(math.atan(2)) # 返回x的反正切值
print(math.atan2(3,4)) # 返回直角坐标对应点的反正弦
# print(math.sin(30)) # sin
# print(math.cos()) # cos
# print(math.tan()) # tan
# print(math.hypot()) #返回欧几里得范数
print(math.degrees(math.pi)) #将弧度转化为角度
print(math.radians(180)) #角度-->弧度

# 数学常量
# e
# pi

# Python 字符串
# 可以使用‘’ 和 ”“ 来创建
# Python 中不支持单字符串
# Python 字符串更新
# 实例
a='pythonnihao'
print('更新字符串:',a[:5]+'wdnmd') # 更新成功
# python 转义字符
# \续行符(用于行尾)\\反斜杠 \'单引号 \"双引号 \a 响铃(执行之后电脑有响铃)\b退格符 \000空格符
# \n换行符 \v纵向制表 \t横向制表 \r回车(将后面的字符转移到开头并逐一替换该符号之前的字符)
# \f 换页符 \yyy八进制数 \xyy十六进制数 \other 普通格式输出
# 实例
print('hello python\
wdnmd')  #输出:hello pythonwdnmd
print('wdnmd\\') #输出:wdnmd\
print('hello python!\'') #输出:hello python!'
print('hello python\"')  #双引号
print("hello python!\a") #响铃(未实现)
print('hello\bpython')  #hellpython
print('m\000w') # 空符并非空格符
print('hello\npython') #换行
print("hello\v python") #纵向制表
print("hello\t python") # 横向制表(均未实现)
print('hello\rpython') #输出:python
print("hello\fpython") #输出:未实现
print('\110\125\123') #输出:HUS (八进制) \yyy
print('\x01\x12\x56') #输出:��V (十六进制) \xyy

# python 字符串运算符
# +连接符 *重复输出符 []索引(左零右负1)[:]部分截取
# in not in 成员运算符 r/R输出原始字符串(忽略转义字符的作用)
# % 格式字符串

# python字符串格式化
print('我叫 %s 今年 %d 岁'%('李华',22)) #注意格式!!!
print('我叫 %s 今年 %d 岁 '%('刘俊龙',23))#强化记忆
# 格式化操作符汇总
# % c 格式化字符及其ASCII码
# % s 格式化字符串
# % d 格式化整数
# % u 格式化无符号整型
# % o 格式化无符号八进制数
# % x 格式化无符号十六进制数
# % X 格式化无符号十六进制数(大写)
# % f 格式化浮点数字,可指定小数点后的精度
# % e 用科学计数法格式化浮点数
# % E 作用同 % e,用科学计数法格式化浮点数
# % g % f和 % e的组合简写
# % G % f和 % E的组合简写
# % p 用十六进制数格式化变量的地址
# 格式化操作符辅助指令
# * 定义宽度或小数点精度
# - 左对齐
# + 正数前显示+
# <sp>  在正数前面显示空格
# # 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
# 0 显示的数字前面填充'0'而不是默认的空格
# % '%%'输出一个单一的'%'
# (var) 映射变量(字典参数)
# m.n.  m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

# Python 三引号
# python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
# 实例
str01="""我是一个字符串
我可以使用制表符跨多行
Bat(\t)
当然我也可以换行\n
"""
print(str01)
# 可以实现Html sql 语句的书写

# f-string(字面量格式化字符串) python3.6版本之后引入 相当于之前的百分号
# %实例
s='就现在'
print('奔跑吧菜鸟 %s'%s)
# f语法:f{}{}... f后跟着字符串,字符串中的表达式用{}包起来 会将变量或者表达式的计算值替换进去
# 实例
#优点;不用再自行判断格式化数据的类型 可以是任何数据类型 包括但不限于列表集合字典等
str='dqz'
print(f'wdnmd {str}')
print(f'wdnmdzzz{str}') # 字符串
print(f'{2+100}') #

#字典
d={"name":'dqz',"slgan":'wdnmd'}
print(f'{d["name"]} {d["slgan"]}') # 输出wdnmd dqz
# 在{}中使用=拼接表达式结果
print(f'{2+225=}') # 输出 2+225=227

# Unicode 字符串
# 在 Python2中 普通字符串以8位ASCII码进行存储的,Unicode字符串存储为16为的Unicode
# Python 3中的所有字符串都是Unicode字符串
# 语法:u+字符串

# Python 字符串内建函数
# 1
# capitalize()
# 将字符串的第一个字符转换为大写
#
# 2
# center(width, fillchar)
#
#
# 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
# 3
# count(str, beg= 0,end=len(string))
#
#
# 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
# 4
# bytes.decode(encoding="utf-8", errors="strict")
#
#
# Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
# 5
# encode(encoding='UTF-8',errors='strict')
#
#
# 以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
# 6
# endswith(suffix, beg=0, end=len(string))
# 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
#
# 7
# expandtabs(tabsize=8)
#
#
# 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。
# 8
# find(str, beg=0, end=len(string))
#
#
# 检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
# 9
# index(str, beg=0, end=len(string))
#
#
# 跟find()方法一样,只不过如果str不在字符串中会报一个异常。
# 10
# isalnum()
#
#
# 如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
# 11
# isalpha()
#
#
# 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
# 12
# isdigit()
#
#
# 如果字符串只包含数字则返回 True 否则返回 False..
# 13
# islower()
#
#
# 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
# 14
# isnumeric()
#
#
# 如果字符串中只包含数字字符,则返回 True,否则返回 False
# 15
# isspace()
#
#
# 如果字符串中只包含空白,则返回 True,否则返回 False.
# 16
# istitle()
#
#
# 如果字符串是标题化的(见 title())则返回 True,否则返回 False
# 17
# isupper()
#
#
# 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
# 18
# join(seq)
#
#
# 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
# 19
# len(string)
#
#
# 返回字符串长度
# 20
# ljust(width[, fillchar])
#
#
# 返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。
# 21
# lower()
#
#
# 转换字符串中所有大写字符为小写.
# 22
# lstrip()
#
#
# 截掉字符串左边的空格或指定字符。
# 23
# maketrans()
#
#
# 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
# 24
# max(str)
#
#
# 返回字符串 str 中最大的字母。
# 25
# min(str)
#
#
# 返回字符串 str 中最小的字母。
# 26
# replace(old, new [, max])
#
#
# 把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。
# 27
# rfind(str, beg=0,end=len(string))
#
#
# 类似于 find()函数,不过是从右边开始查找.
# 28
# rindex( str, beg=0, end=len(string))
#
#
# 类似于 index(),不过是从右边开始.
# 29
# rjust(width,[, fillchar])
#
#
# 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
# 30
# rstrip()
#
#
# 删除字符串字符串末尾的空格.
# 31
# split(str="", num=string.count(str))
#
#
# 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串
# 32
# splitlines([keepends])
#
#
# 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
# 33
# startswith(substr, beg=0,end=len(string))
#
#
# 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
# 34
# strip([chars])
#
#
# 在字符串上执行 lstrip()和 rstrip()
# 35
# swapcase()
#
#
# 将字符串中大写转换为小写,小写转换为大写
# 36
# title()
#
#
# 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
# 37
# translate(table, deletechars="")
#
#
# 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
# 38
# upper()
#
#
# 转换字符串中的小写字母为大写
# 39
# zfill (width)
#
#
# 返回长度为 width 的字符串,原字符串右对齐,前面填充0
# 40
# isdecimal()
#
#
# 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false







print('-------------------------------------------------')
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,875评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,569评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,475评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,459评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,537评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,563评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,580评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,326评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,773评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,086评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,252评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,921评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,566评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,190评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,435评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,129评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,125评论 2 352

推荐阅读更多精彩内容