python基本数据类型

python之字符串和运算符

字符串

格式化字符串

print(6 + 6)
print('6' + '6')
print('jerr' + 'y')
# print(6 + '6') 两个不同类型的相加会报一个类型错误
12
66
jerry

拼串

s = 'hello'
print('s = ' + s)

用+号来进行拼串

s = hello

传递参数

s = 'hello'
print('s = ',s)
s =  hello

占位符

%d 整数占位
%s 字符串占位
%f 浮点数占位

print('i love %s' % 'study')
a = 'i love %s'
print(a % 'python')
print(a % 'java')
s = 's = %s' % 'hello'
print(s)
# s = 's = %s,s2 = %s' % 'hello' 注意:参数不够 not enough 这时要添加一个元组
s = 's = %s,s2 = %s' % ('hello','world')# hello world 分别给s和s2
print(s)
i love study
i love study
i love python
i love java
s = hello
s = hello,s2 = world

格式化的方式

f表示一种格式化的方式

# 第一种
s1 = '钢铁侠'
s2 = '葫芦娃'
# {}之中表示的是变量
a = f'hello {s1},{s2}' # f 表示的是格式化的一种方式
print(a)
s = '歌赋'
a = f'诗词{s}'
print(a)
hello 钢铁侠,葫芦娃
诗词歌赋

str.format()注意:后面可以添加多个参数。

# 第二种
# str.format()
s = 'i like {}'
# format 后面可以跟多个参数 并不仅限于一个参数
a = s.format('python')
print(a)
s = 'i like {},{}'# {}中可以不填写,也可以填写0或者1,但是要注意添加的时候不能超过最大的索引值
a = s.format('python','java')
print(a)
i like python
i like python,java

字符串的其他操作

字符串的长度

len()函数获取字符串的长度

a = 'python'
print(len(a))# 6个元素
print(len('i love you')) #len()获取字符串的长度

值得注意的是空格也算一个元素哦

6
10
最大值和最小值

max()获取最大值
min()获取最小值

c = '1234567'
b = 'jerry python'
print(max(c))# max()函数获取字符串中最大的数 并且返回最大值
print(min(b))# min()函数获取字符串中最小的数 并且返回最小值
print(max(b))
print(min(b))# 注意:字符串中不是数字而是字母时,比较的是字符对应的ASCII码的值
7
 
y
查询对应的ASCII码

ord()查询ASCII码

print(ord('d'))
print(ord('a'))# ord()查找对应的ASCII码
100
97
字符串的分割

str.split()分割字符串

a = 'i love China'
a = a.split(' ')# 以空格分割
print(a)
b = 'www.baidu.com'
b = b.split('.')
print(b)

split()函数会切割字符串之后会返回一个列表。

['i', 'love', 'China']
['www', 'baidu', 'com']
拼接字符串

join()拼接字符串

a = 'abf'
print(a)
a = '-'.join(a) # 注意: 前面是拼接的方式(内容),后面是拼接的数据
print(a)
abf
a-b-f
去空格

str.strip() 左右去空格
str.lstrip() 左边去空格
str.rstrip() 右边去空格

a = ' python '
a = a.strip(' ')
print(a)
a = ' python '
a = a.lstrip('')
print(a)
a = ' python '
a = a.rstrip(' ')
print(a)
python
python 
 python
大小写

upper()全部大写
lower()全部小写
isupper() 判断是否是大写
islower()判断是否为小写

a = 'i love china'
a = a.upper()
print(a)
a = a.lower()
print(a)
b = 'hello'
c = 'JERRY'
b = b.islower()
print(b)
c = c.isupper()
print(c)
I LOVE CHINA
i love china
True
True

运算符

运算符的概念:

运算符在编程当中执行代码的运算,会针对一个以上的数字进行运算

运算符的分类:

算术运算符
赋值运算符
比较运算符
逻辑运算符
条件运算符

算术运算符:

+ - * / // % **

# +
x = 1 + 2
print(x)
x = 'hello' + ' ' + 'world'
print(x)
# -
x = 5 - 2
print(x)
x = 5 - True
print(x)
# x = 'python' - 'y' 注意:字符串无法进行相减
# print(x)
# *
x = 5 * 2
print(x)
x = 'dkfjk' * 67# 字符串和数字进行乘法运算,表示的是复制几遍字符串,也就是将字符串重复指定次数
print(x)
# x = 'a' * 'b'注意 :字符串无法进行相乘运算
# print(x)
# /
x = 6 / 2
print(x) # 除法运算会返回一个浮点数
# x = 6 / 0 注意:除数不能为0
# //
x = 7 //3#  // 整除 只会保留计算后的整数位
print(x)
# %
x = 6 % 4# % 表示取余(取模) 两个数相除的余数
print(x)
# **
x = 2 ** 2 # ** 幂运算 表示数的几次幂
print(x)
x = 25 ** 0.5 # 一种开平方的方式 只要与浮点数运算则返回一个浮点数
print(x)
3
hello world
3
4
10
dkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjkdkfjk
3.0
2
2
4
5.0
赋值运算符:

= += -= *= /= //=

a = 10  # 等号来连接
# 10 = a
x = 2
x = x + 3  # 等价于x += 3
print ( 'x = ', x )
# x += 3->x = x + 3
# x -= 3->x = x - 3
# x *= 3->x = x * 3
# x /= 3->x = x / 3
# x //= 3->x = x // 3
x = '2 ' > '1'# 比较的是ASCII码的值
print(x)
x = '2 ' > '11' # 注意:如果出现了多个字符,则应该是按位比较,如果2和1比较出了大小,则进行返回,如果没有比较出大小,则比较第二位
print(x)
x =  5
True
True
比较运算符:

>= > < <=

# > 
result = 10 > 20# 比较左侧的值是否大于右侧的值
print(result) 
# <
result = 20 < 10
print(result) # 比较左侧的值是否小于右侧的值
# >=
result = 29 >= 29# 比较左侧的值是否大于或者等于右侧的值
print(result)
# <=
result = 78 <= 90# 比较右侧的值是否大于或者等于左侧的值
print(result)
False
False
True
True
逻辑运算符:

and or not

x = 0
result = x > 1 and x < 2  # 做一些判断
print(result)
# not逻辑非 可以对符号右侧的值进行非运算,对于非布尔值,先转换成布尔值,再进行取反
a = 1
a = not a
print ( not (a) )
r = None
r = not None
print ( r )
# 0 空串 None还有些比如表示空性的值会转换成False 剩下的全是True
a = []  # 表示空性的列表
a = not a
print ( a )
# and逻辑与 and对符号两侧进行与运算 有False则返回一个False,只有在符合两侧的值都为True,才会返回一个True,否则返回一个False,在and中如果左侧是真则执行右侧,如果左侧为假则不执行右侧
result = True and True
print ( result )
result = True and False
print ( result )
result = False and True
print ( result )
result = False and False
print ( result )
True and print ( 'hello' )  # hello
False and print ( 'hello' )  # 没结果
# or逻辑或 找True 两个中只要有一个是True则返回一个True,如果左侧为True,则不执行右侧,如果左侧为False, 则执行右侧
result = True or True
print ( result )
result = True or False
print ( result )
result = False or True
print ( result )
result = False or False
print ( result )
False
True
True
True
True
False
False
False
hello
True
True
True
False

or and not 运算符的优先级比较

a = 2 or 3 and 4

# 第一种情况:or 与 and优先级一样高
# 如果or比and高,则表达式是要从左向右进行计算,2 or 3中的or要找True,所以返回一个2,此时a = 2 and 4,and 要找False,所以返回4给变量a.

# 第二种情况:or 与 and优先级高
# 如果or比and优先级高,2 or 3 要返回一个2,a = 2 and 4要返回一个4给变量a。

# 第三种情况:and 与 or优先级高
# 如果and比or优先级高,a = 2 or 3 and 4中3 and 4 返回4,此时的变量a = 2 or 4,可知or要找True,所以返回一个2给变量a.
print(a)
2

由此可见:结果为2,可以证明and的优先级大于or的优先级。
具体请访问:运算符优先级参考表 练习:
优先级比较
not> and> or

a = not 4 > 2 and 5 < 6 or 3 < 4
# not 优先级最高,其次是and和or
# 4 > 2 是True,not 4 > 2是False,False and 5 < 6 or 3 < 4,and 找False所以False and 5 < 6 返回一个False,又因为3 < 4为真,此时的a = False or 3 < 4,a = False or True,or 找True,所以a = True.
print(a)
True
a = not(4 > 2 and 5 < 6 or 3 < 4)
# 有小括号先算小括号里面的,4 > 2为True,5 < 6为True,3 < 4为True,所以a = not(True and True or True)返回一个False给a变量。
print(a)
False
条件运算符(三元运算符):

python之字符串和运算符_优先级


if else条件运算符

变量 = 语句1 if 表达式 else 语句2,如果表达式为真则执行语句1,如果表达式为假则执行语句2.

# 条件运算符
print ( 'python' ) if False else print ( 'java' )
a = 30
b = 20
print ( 'a的值比较大' ) if a > b else print ( 'b的值比较大' )
# 总结:if后面的表达式为真则执行if前语句,如果为假则执行else后语句
java
a的值比较大
比较变量值:

== 比较变量的值是否相等
!= 比较变量的值是否不相等

a = 'hello' == 'hello'
print(a)
a = 1 == True
print(a)
a = 'hello' != 'world'
print(a)
# 注意: 两个对象的值相等并不意味是同一个对象
print(id(1),id(True))
True
True
True
140044609438432 140044609034272
判断是否为同一个对象:

is 比较两个对象是否为同一个对象,比较的是对象的id
is not比较两个对象是否不是同一个对象

# is 和 is not
# is比较两个对象是否是同一个对象,比较的是对象的id
# is not 比较两个对象是否不是同一个对象
result = 0 == False
print ( result )
result = 0 is False
print ( result )
result = 0 is not False
print ( result )
a = 1
b = 1
print ( a is b )
print ( id ( a ), id ( b ) )
True
False
True
True
140528489104096 140528489104096
非布尔值的与或运算:
# 非布尔值的与或运算
result = 1 and 2
print ( result )
result = 1 and 0
print ( result )
result = 0 and 2
print ( result )
result = None and 0
print ( result )
result = 1 or 2
print ( result )
result = 0 or 1
print ( result )
# 如果第一个值是true 则返回第一个值,否则返回第二个值
result = 1 < 2 < 3  # 1 < 2 and 2 < 3
print ( result )
2
0
0
None
1
1
True

用五种方式实现“521 女神 嫁给我好吗”

# 拼串
girl = '女神'
print('521'+girl +'嫁给我好吗')
# 占位符
print('521%s嫁给我好吗'% girl)
# 参数传递
print('521',girl,'嫁给我好吗')
# f表示一种格式化字符串的方式
a = f'521 {girl} 嫁给我好吗'
print(a)
# format
b = '521 {0} 嫁给我好吗'
b = b.format(girl)
print(b)
521女神嫁给我好吗
521女神嫁给我好吗
521 女神 嫁给我好吗
521 女神 嫁给我好吗
521 女神 嫁给我好吗

下节:Python之条件控制语句