第二课 运算符(day10)
一、运算符
结果是值
算数运算
a = 10 * 10
赋值运算
a = a + 1 a+=1
结果是布尔值
比较运算
a = 1 > 5
逻辑运算
a = 1>6 or 1==1
成员运算
a = "蚊" in "郑建文"
二、基本数据类型
1、数值(int)
(1) Int() 把字符串变成数值型 eg int(num,base=16) 把字符串变成16进制 的数,默认是变成10进制的数。
(2) Type()什么类型
(3) .bit_lenght 什么的二进制位数
Eg: a='123'
type(a)
print(type(a),a)
age=10
s=age.bit_length()
print(s)
num='0011'
v=int(num,base=16)
print(v)
2、字符串(str)
(1) .capitalize() 首字母大写
Eg: test='alex'
v=test.capitalize() 输出Alex
print(v)
(2) .casefold() 所有 变成 字母小写 大写。小写
.lower() 将英文字母 变成 小写
.islower() 判断是否为小写
.upper 将英文字母 变成大写
.isupper() 判断是否为大写
.swapcase 大小写转换
Eg: test='AlEx'
v1=test.casefold() 输出alex
v2=test.lower() 输出alex
v3=test.islower() 输出false
v5=test.isupper() 输出false
v4=test.upper() 输出ALEX
v6=test.swapcase() 输出aLeX
print(v1,v2,v3,v4,v5,v6)
(3) .center(12,’#’) 表示把某放在12个字符中间,其余的地方用#补充 字符补充
.center(12,’#’) 输出####AlEx#### Eg:print(test.center(12,'#'))
.ljus(12,’#’) 输出AlEx########
.rjust(12,’#’) 输出########AlEx
.join(test) 用某把test表示的AlEx连接起来
.zfill(12) 输出00000000AlEx
Eg: test='AlEx'
v1=test.center(12,'#')
v2=test.ljust(12,'#')
v3=test.rjust(12,'#')
v4='@'.join(test)
v5=test.zfill(12)
print(v1,v2,v3,v4,v5)
####AlEx#### AlEx######## ########AlEx A@l@E@x 00000000AlEx
(4) .count(‘a’,5,6) 字母a在字符串[5,6)的位置中出现次数
Eg: test='alexalex'
v=test.count('a',4,5) alexalex字符串位置01234567 输出1次
print(v)
(5) .startswith() 以什么开头,判断输出布尔值
.endswith() 以什么结尾,判断输出布尔值
Eg: test='alex'
v1=test.startswith('al')
v2=test.endswith('al') 输出 true flase
print(v1,v2)
(6) .find 从某位置开始找,找到第一个后获得其位置值
Eg: test='alexalex'
V1=test.find('ex',5,7) ex在6,7位置[5,7)就没有输出-1
V2=test.find('ex',5,8) [5,8)输出6
print(v1,v2)
(7) .format 格式化,将占位置符换成值
.format_map 将占位置符换成值
Eg: test='i am {name},age{a}'
v1=test.format(name='alex',a=19) 输出i am alex,age19
v2=test.format_map({'name':'alex','a':19})
print(v1)
print(v2)
(8) .isalnum 判断字符串中是否只包含 字母和数字,输出布尔值
Eg: test='123aa'
v=test.isalnum() 输出true
print(v)
.isalpha 判断字符串中是否只包含 字母和汉字
Eg: test='aaa啊'
v=test.isalpha() 输出true
print(v)
(9) .isdecinal() 判断是否数字
.isdigit() 判断是否数字,包涵特殊数字②
.isnumeric() 判断是否数字,包涵特殊数字、中文数字二
Eg: test=’2’\’②’\'二'
v1=test.isdecimal()
v2=test.isdigit() 输出ttt\ftt\fft
v3=test.isnumeric()
print(v1,v2,v3)
(10) .isprintable 判断是否存在不可显示字符(空格也是可以显示的)
\t 制表符
\n 换行
.expandtabs(20) 遇到\t断句,将\t前面的字符和空格一起组成20长的字符串,\n换行
Eg: test='111\t222\t333\naaa\tbbb\tccc\n+++\t---\t***\n'
v1=test.isprintable()
v2=test.expandtabs(20)
print(v1)
print(v2)
输出:
False
111 222 333
aaa bbb ccc
+++ --- ***
test=' 123 '
v1=test.isprintable() 输出true
print(v1)
(11) .isspace 判断是否全是空格, ’’什么都没有也不是空格(false)
Eg: test1=''
test2=' '
v1=test1.isspace() false true
v2=test2.isspace()
print(v1)
print(v2)
(12) .istitle() 判断是否是英文标题
.title() 变成英文标题 ,首字母大写
Eg: test='test is test'
v1=test.istitle() 输出false Test Is Test
v2=test.title()
print(v1,v2)
(13) .lstrip() 去掉 左边、右边、两边 字符串中的空格,\t,\n
.rstrip()
.strip()
Eg: test=' \talex\n '
v1=test.lstrip()
v2=test.rstrip()
v3=test.strip()
print(v1,v2,v3)
输出alex
alex alex
(14) m=str.maketrans( ‘abc’,’123’) 输出abc和123对应
.translate(m) 根据m对应关系替换
eg: test='avbvcv'
m=str.maketrans('abc','123') 输入1v2v3v
v1=test.translate(m)
print(v1)
(15) .partition 对字符串进行分割从左到右分割只成三份(包涵分割元素)
.rpartition 右——左只分割三份(包涵分割元素)
.split(‘s’,2) 分割两次,不保留分割元素
.splitlines() 只能分割\n——.splitlines(True) 保留\n分割
.splitlines(False) 无\n分割
Eg: test='bacdayyhua123a\nc'
v1=test.partition('a')
v2=test.rpartition('a')
v3=test.split('a')
v4=test.split('a',2)
v5=test.splitlines(True)
v6=test.splitlines(False)
print(v1)
print(v2)
print(v3)
print(v4)
print(v5)
print(v6)
输出:('b', 'a', 'cdayyhua123a\nc')
('bacdayyhua123', 'a', '\nc')
['b', 'cd', 'yyhu', '123', '\nc']
['b', 'cd', 'yyhua123a\nc']
['bacdayyhua123a\n', 'c']
['bacdayyhua123a', 'c']
(16) .isidentifier 判断是否是标识符 def class(字母、数字、下划线)
Eg: test='avb_'
v1=test.isidentifier() 输出True
print(v1)
3.7个常用的语句
(1).join() 用什么拼接某字符
(2).Split() 分割字符,全分割,不保留分割元素
(3) .find()查找某一字符在字符串的位置。字符串位置eg0123 len()计算字符串长度4
(4).strip() 去左右的空格、\n、\t
(5).upper() 转换成大写
(6).lower() 转换成小写
(7).replace(‘ex’,’b’,2) 将第2个ex换成b
Eg: test='exavvvexaaex+'
v1=test.replace('ex','b') 输出:bavvvbaab+
v2=test.replace('ex','b',2) bavvvbaaex+
print(v1)
print(v2)
4、5个灰魔法
(1) for循环: For变量名 in 字符串:
break
Continue
Eg: a. n=0
test = "郑建文妹子有种冲我来"
while n<len(test): a和b算法结果一致
v=test[n]
n=n+1
print(v)
- for n in test:
print(n)
- for n in test:
print(n)
break 输出郑,只循环一次 break放在循环最后
- for n in test:
continue 什么都不输出,continue放中间
print(n)
(2) 字符串名称[] 获取字符串的某一个字符
索引:字符串名称[3] 第3个字符
切片:字符串名称[0:1] 0<=x<1 [0,1)
字符串名称[0:-1] 0字符到倒数第二个字符
(3) 获取长度: len( 字符串名称) 字符串中字符个数,汉字中汉字的个数
012 长度3
Eg: mmm='alexalex'
v1=mmm[0:1] a
v2=mmm[0:-1] alexale
v3=len(mmm) 8
print(v1)
print(v2)
print(v3)
(4) range(10) [0,10)
range(1,10) [1,10)
range(0,10,2) [0,10) 02468
Eg: for v in range(0,10,2): 02468
print(v)
(5) 字符串一旦创建,不可修改
一旦修改或者拼接,都会造成重新生成字符串
练习题:根据用户输入的值,输出每一个字符以及当前字符所在的索引位置
Eg: test=input('请输入用户名')
for m in range(0,len(test)):
k=test[m]
print(m,k)