运算符
1.in 和 not in
name = "abc" # "aaa"是字符串,"a"是字符
# if "a" in name: # in:判断字符是否包含在字符串,也可以是相邻的子序列:"ab","bc",输出ok,"ac"报错
# print("ok")
# else:
# print("error!")
if "d" not in name: # not in:反向同上
print("ok")
else:
print("error!")
布尔值:False和True(not False,not True)
name = "abc" # "aaa"是字符串,"a"是字符
v = "a" not in name
v1 = "a" in name
print(v) # False
print(v1) # True
2.基本数据类型
注:python3没有长整形!
# int
a = 111
b = "123"
print(type(b))
b = int(b) # 转换类型,将字符串转换为数字
print(a+b)
num = "b"
v = int(num,base=16) # 按照base=的进制转换为十进制,将16进制的num转换为十进制
print(v)
age = 8
# 1 1 二进制
# 2 10
# 3 11
# 4 100
# 5 101
r = age.bit_length() # 表示当前数字的二进制至少是多少位
print(r)
字符串方法
test = "alEX"
v = test.capitalize() # 首字母大写,其他全小写
print(v)
v1 = test.casefold() # 全部变小写,包括很多未知的也变小写(此方法更牛逼)
print(v1)
v2 = test.lower() # 变小写(比较平庸)
print(v2)
print(test.islower()) # 是否全是小写
print(test.upper()) # 转换为大写
print(test.isupper()) # 是否全是大写
v3 = test.center(20,"*") # 设置整个字符串宽度,内容居中,两边用"*"填充(不写默认是空格,只支持传入一个字符)
print(v3) # ********alEX********
print(test.ljust(20,"*")) # alEX****************
print(test.rjust(20,"*")) # ****************alEX
print(test.zfill(20)) # 0000000000000000alEX,只能用0填充
test1 = "alexlalexr"
v4 = test1.count("a") # 计算该字符或者字符串子序列在字符串出现几次
print(v4)
v5 = test1.count("al",3,8) # 从3开始到8结束查找某字符或子序列在3~8区间内出现的次数
print(v5)
v6 = test.endswith("EX") # 以什么结尾
v7 = test.startswith("al") # 以什么开始
print(v6)
print(v7)
test2 = "alexalex"
v8 = test2.find("ex") # 从开始往后找,找到第一个后得到其位置
print(v8)
v9 = test2.find("ex",5,8) # 在区间[5,8)之间寻找
print(v9)
test4 = "I am {name},age {a}"
print(test4)
v10 = test4.format(name="hahaha",a=19) # 格式化,将字符串中占位符{}替换为指定的值
print(v10)
v11 = test4.format_map({"name":"alex","a":19}) # 格式化,传入的值{"name":"alex","a":19}
print(v11)
v11 = test2.index('ex') # index如果找不到直接报错
print(v11)
test = "user236_+"
v12 = test.isalnum() # 判断字符串中是否只是包含字母数字
print(v12)
s = "12345678\t9"
v =s.expandtabs(6) # 进行断句6,123456没有\t,到了78\t出现,于是78后面用\t补齐为六位
print(v,len(v))
test = "asdf"
v1 = test.isalpha() # 是否是字母汉字
v2 = test.isalnum()
print(v1)
print(v2)
test1 = "123"
v3=test1.isdecimal() # 判断是否是十进制数字
v4=test1.isdigit() # 可以判断特殊数字,不支持中文
v5 = test1.isnumeric() # 判断数字包括中文数字
print(v3,v4,v5)
test2 = "ksdjlf\n"
v6 = test2.isprintable() # 字符串是否包含不可显示的字符 \t \n
print(v6)
test3 = "sdf 更好 t " # 判断字符串是否全是空格
v7 = test3.isspace()
print(v7)
test4 = "Return null" # 判断是否为标题以及变成标题
v8 = test4.title()
print(v8)
print(v8.istitle())
test5 = "一日不见兮"
t = " " # 将字符串拆解成单个字符,在字符间隔中插入" "
print(t.join(test5)) # 一 日 不 见 兮
test6 = "xalex"
print(test6.lstrip()) # 去掉左边空格(还可以去除\t,\n)
print(test6.rstrip()) # 去掉右边空格
print(test6.strip()) # 去掉所有空格
print(test6.lstrip("x")) # 去掉左右所有的指定内容中所匹配到的子序列
print(test6.rstrip("x"))
v9 = "admin:ejdlksjf:adm"
m = str.maketrans("admin","11111") # 设定对应的转换关系
print(v9.translate(m)) # 根据转换关系替换
test7 = "test,sa,dsf,h,hh"
print(test7.partition("s")) # 只能永远将字符串按照""分成三份
print(test7.rpartition("s")) # 从右边的第一个""开始分,分成三份
print(test7.split("s")) # 分割成任意份(也可以指定数量参数).但是"s"不在得到的分割部分中
print(test7.split("s",2))
print(test7.rsplit())
test8 = "test\nsads\nfh\nhh" # 分割,只能根据,true,false是否保留换行
print(test8.splitlines(False))
test9 = "backend1,1,1,1"
print(test9.startswith("b")) # 判断是否以""开头,以""结尾
print(test9.endswith("1"))
test10 = "aIexex"
print(test10.swapcase()) # 大小写转换 AiEX
print("_123".isidentifier()) # 判断是否为正确的变量名写法
print(test10[2]) # 通过索引获取字符串中某一个字符
print(test10[0:1]) # 通过索引范围[0,1),切片
print(test10[0:-1]) # aIe
print(len(test10)) # 字符串长度
print(test10.replace("ex","bbb")) # aIexex --> aIbbbbbb
print(test10.replace("ex","bbb",1)) # aIbbbex只替换第一个"ex"
index = 0
while index < len(test10): # 逐个输出字符串中的所有字符
print(test10[index])
index+=1
print("输出完毕")
v10 = range(100) # 帮我们创建连续的数字,在py27中会立即在内存中创建0~99,在py3中不会立即在内存创建除非使用循环
v10 = range(0,100,5) # 通过设置5为步长,按照步长跳着取数字:0,5,10......
for item in v10:
print(item)
for循环
for循环
for 变量名 in 字符串
print(变量名)
for i in test10:
# continue
# break
print(i)
test11 = input(": ")
for item in range(0,len(test11)):
print(test11[item]+"..."+str(item))