一丶数字类型
1.int类型
作用:用来记录人的年龄,出生年份,学生人数等整数相关的状态
定义:age = 10 # age=int(10)
类型转换:
# 纯数字的字符串转成int # res=int('100111') # print(res,type(res)) # 十进制转成其他进制 # 10进制 -> 二进制 # 11 - > 1011 # 1011-> 8+2+1 # print(bin(11)) # 0b1011 # 10进制 -> 八进制 # print(oct(11)) # 0o13 # 10进制 -> 十六进制 # print(hex(11)) # 0xb # print(hex(123)) # 0xb # 其他制转成其十进制 # 二进制->10进制 # print(int('0b1011',2)) # 11 # 二进制->8进制 # print(int('0o13',8)) # 11 # 二进制->16进制 # print(int('0xb',16)) # 11
2.float类型
作用:用来记录人的身高,体重,薪资等小数相关的状态
定义:salary=3.1 # salary=float(3.1)
类型转换:res=float("3.655")
ps:int与float没有需要掌握的内置方法
二丶字符串类型str
作用:用来记录人的名字,家庭住址,性别等描述性质的状态
定义:msg='hello' # msg=str('msg')
类型转换:str可以把任意其他类型都转成字符串
如:res=str({'a':1})
print(res,type(res))
使用:内置方法
优先掌握
1.按索引取值(正向取值,反向取值)
str = 'hello python!' # 1.1 正向取值(从左往右) # print(str[6]) p # 1.2 反向取值(负号表示从右往左 ) # print(str[-6]) y # 1.3 对于str来说,只能按照索引取值不能按照索引改值 # str[-6] = 'a' 会报错
2.切片(顾头不顾尾,步长)
str = 'hello python!' # 2.1 顾头不顾尾,取0到5的所有字符 #print(str[0:6]) # 2.2 步长 0:6:2 第三个参数2代表从0开始依次累加2 # print(str[0:6:2]) # 2.3 反向切片 # print(str[::-1])
3.长度len:获取字符串的长度,及字符串的个数,但凡存在引号内的都是字符 空格也算字符print(len(str))
4.成员运算:in 和 not in
str = ‘hello word’ # 4.1 int:判断该字符是否在某个字符串中 # print('hello' in str) # 4.2 not in:判断该字符是否不在某个字符串中 # print('adsa' not in str)
5.strip移除字符串首尾指定的字符(默认移除空格)
# 5.1括号内不指定字符,则默认移除首尾空格 # str1 = ' aaaaaa ' # print(str1.strip()) # # 5.2括号内指定了字符,则移除首尾指定的字符 # str2 = '****sdaasd****' # print(str2.strip('*'))
6.切分split
# 6.1括号内不指定字符,则默认以空格作为切分符号 # str3 = 'adasd sdaas' # print(str3.split()) # # 6.2括号内指定字符,则以指定字符作为切分符号 # str4 = '127.0.0.1' # print(str4.split('.')) # # 指定分隔次数(了解) # info='egon:18:male' # res=info.split(':',1) # print(res) # # ps:split切割得到的结果是列表
7.循环
# info='asdasgfasg' # for x in info: # print(x)
需要掌握
1.strip, lstrip, rstrip
str = '***aaa***' str.strip('*') # 移除左右两边的指定字符>>>'aaa' str.lstrip('*') # 只移除左边的指定字符>>>'aaa***' str.rstrip('*') # 只移除右边的指定字符>>>'***aaa'
2..lower(),upper()
str = 'My nAme is Jun!' str.lower() # 将英文字符串全部变小写 str.upper() # 将英文字符串全部变大写
3.startswith,endswith
str = 'sadsadsa' # startswith判断字符串是否以括号内指定的字符开头,结果为布尔值True或False str.startswith('s') True str.startswith('a') False # endswith()判断字符串是否以括号内指定的字符结尾,结果为布尔值True或False str.endswith('sa') True str.endswith('aa') False
4.格式化输出之format
在之前的博客中
5.split,rsplit
# split会按照从左到右的顺序对字符串进行切分,可以指定切割次数 str='C:/a/b/c/d.txt' str.split('/',1) ['C:', 'a/b/c/d.txt'] # rsplit刚好与split相反,从右往左切割,可以指定切割次数 str='a|b|c' str.rsplit('|',1) ['a|b', 'c']
6.join
# 从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串 '|'.join('aaa')# 从字符串'aaa'中取出多个字符串,然后按照|作为分隔符号进行拼接 'a|a|a' '*'.join(['tony','18','read'])# 从列表中取出多个字符串,然后按照*作为分隔符号进行拼接 'tony*18*read'
7.replace
# 用新的字符替换字符串中旧的字符 msg="you can you up no can no bb" print(msg.replace("you","YOU",)) print(msg.replace("you","YOU",1))# 只把一个you改为YOU
8.isdigit
#4.2.8、isdigit # 判断字符串是否由纯数字组成 # print('123'.isdigit()) # print('12.3'.isdigit())
了解
# 1.find,rfind,index,rindex,count msg='hello egon hahaha' #1.1 find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1 print(msg.find('e')) #1.2 index: 同find,但在找不到时会报错 print(msg.index('e', 2, 4)) #找不到报错 #1.3 count:统计字符串在大字符串中出现的次数 print(msg.count('e')) # 字符串e在索引1~5范围内出现的次数 print(msg.count('e', 1, 6)) # 2.center,ljust,rjust,zfill print('jun'.center(30,'*'))# 总宽度为30,字符串居中显示,不够用-填充 print('jun'.ljust(30,'*'))# 总宽度为30,字符串左对齐显示,不够用*填充 print('jun'.rjust(30,'*'))# 总宽度为30,字符串右对齐显示,不够用*填充 print('jun'.zfill(10))# 总宽度为50,字符串右对齐显示,不够用0填充 #3.expandtabs msg='hello world' print(msg.expandtabs(2)) # 设置制表符代表的空格数为2 # 4.captalize,swapcase,title print("hello world egon".capitalize())#首字母大写 print("Hello WorLd EGon".swapcase())#大小写翻转 print("hello world egon".title())#每个单词的首字母大写 # 5.is数字系列 num1 = b'4' #bytes num2 = u'4' #unicode,python3中无需加u就是unicode num3 = '四' #中文数字 num4 = 'Ⅳ' #罗马数字 # isdigit只能识别:num1、num2 print(num1.isdigit()) # True print(num2.isdigit()) # True print(num3.isdigit()) # False print(num4.isdigit()) # False # isnumberic可以识别:num2、num3、num4 print(num2.isnumeric()) # True print(num3.isnumeric()) # True print(num4.isnumeric()) # True # isdecimal只能识别:num2 print(num2.isdecimal()) # True print(num3.isdecimal()) # False print(num4.isdecimal()) # False # 6.is其他 name = 'tony123' print(name.isalnum()) #字符串中既可以包含数字也可以包含字母 print(name.isalpha()) #字符串中只包含字母 print(name.isidentifier()) print(name.islower()) # 字符串是否是纯小写 print(name.isupper()) # 字符串是否是纯大写 print(name.isspace()) # 字符串是否全是空格 print(name.istitle()) # 字符串中的单词首字母是否都是大写
作业
name = " aleX" # 1) 移除 name 变量对应的值两边的空格,并输出处理结果 print(name.strip()) # 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果 print(name.startswith('al')) # 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果 print(name.endswith('X')) # 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果 print(name.replace('l','p')) # 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。 print(name.split('l')) # 6) 将 name 变量对应的值变大写,并输出结果 print(name.upper()) # 7) 将 name 变量对应的值变小写,并输出结果 print(name.lower()) # 8) 请输出 name 变量对应的值的第 2 个字符? print(name[1]) # 9) 请输出 name 变量对应的值的前 3 个字符? print(name[0:3]) # 10) 请输出 name 变量对应的值的后 2 个字符? print(name[-1:2:-1]) # 11) 请输出 name 变量对应的值中 “e” 所在索引位置? print(name.index('e')) # 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。 print(name[:-1])