javastring转int的方法_打卡学python(第9天),基本数据类型及内置方法(建议收藏)

本文介绍了Python中数据类型转换(int, float)的基本原理,如整数转换、进制转换和浮点数转换。重点讲解了字符串的类型转换、操作方法,包括索引、切片、长度计算、成员运算、常用内置方法如strip、split等。适合初学者快速回顾和查阅。
摘要由CSDN通过智能技术生成

学习内容:python基本数据类型及内置方法

引言:

前面学习了python基本数据类型的定义和基本使用,今天主要学习一些内置方法和类型转换,内容较多,反正我是一下记不住,建议收藏,先在脑子里有个印象,以后用到时回来查找。

f700a4dc337594e5592e81a3496a1c79.png

一、数据类型转换(int、float)由于该类型主要用于数学运算,所以无需掌握其内置方法

# 1、数据类型转换# 1.1 int可以将由纯整数构成的字符串直接转换成整型,若包含其他任意非整数符号,则会报错>>> s = '123'>>> res = int(s)>>> res,type(res)(123, )>>> int('12.3') # 错误演示:字符串内包含了非整数符号.Traceback (most recent call last):  File "", line 1, in ValueError: invalid literal for int() with base 10: '12.3'# 1.2 进制转换# 十进制转其他进制>>> bin(3)'0b11'>>> oct(9)'0o11'>>> hex(17)'0x11'# 其他进制转十进制>>> int('0b11',2)3>>> int('0o11',8)9>>> int('0x11',16)17# 1.3 float同样可以用来做数据类型的转换>>> s = '12.3'>>> res=float(s)>>> res,type(res)(12.3, )

二、字符串

1、类型转换

# 数据类型转换:str()可以将任意数据类型转换成字符串类型,例如 >>> type(str([1,2,3])) # list->str>>> type(str({"name":"jason","age":18})) # dict->str>>> type(str((1,2,3)))  # tuple->str>>> type(str({1,2,3,4})) # set->str

2、操作方法

>>> str1 = 'hello python!'# 1.按索引取值(正向取,反向取):# 1.1 正向取(从左往右)>>> str1[6]p# 1.2 反向取(负号表示从右往左)>>> str1[-4]h# 1.3 对于str来说,只能按照索引取值,不能改>>> str1[0]='H' # 报错TypeError# 2.切片(顾头不顾尾,步长)# 2.1 顾头不顾尾:取出索引为0到8的所有字符>>> str1[0:9]  hello pyt# 2.2 步长:0:9:2,第三个参数2代表步长,会从0开始,每次累加一个2即可,所以会取出索引0、2、4、6、8的字符>>> str1[0:9:2]  hlopt # 2.3 反向切片>>> str1[::-1]  # -1表示从右往左依次取值!nohtyp olleh# 3.长度len# 3.1 获取字符串的长度,即字符的个数,但凡存在于引号内的都算作字符)>>> len(str1) # 空格也算字符13# 4.成员运算 in 和 not in    # 4.1 int:判断hello 是否在 str1里面>>> 'hello' in str1  True# 4.2 not in:判断tony 是否不在 str1里面>>> 'tony' not in str1 True# 5.strip移除字符串首尾指定的字符(默认移除空格)# 5.1 括号内不指定字符,默认移除首尾空白字符(空格、、)>>> str1 = '  life is short!  '>>> str1.strip()  life is short!# 5.2 括号内指定字符,移除首尾指定的字符>>> str2 = '**tony**'  >>> str2.strip('*')  tony# 6.切分split# 6.1 括号内不指定字符,默认以空格作为切分符号>>> str3='hello world'>>> str3.split()['hello', 'world']# 6.2 括号内指定分隔字符,则按照括号内指定的字符切割字符串>>> str4 = '127.0.0.1'>>> str4.split('.')  ['127', '0', '0', '1']  # 注意:split切割得到的结果是列表数据类型# 7.循环>>> str5 = '你吃饭了吗?'>>> for line in str5:  # 依次取出字符串中每一个字符...     print(line)...你吃饭了吗?
4af97ae2f93bc23afb2f221c89aed04e.gif

3、(重要)常用的内置方法

  • strip, lstrip, rstrip
>>> str1 = '**tony***'>>> str1.strip('*')  # 移除左右两边的指定字符'tony'>>> str1.lstrip('*')  # 只移除左边的指定字符tony***>>> str1.rstrip('*')  # 只移除右边的指定字符**tony
  • lower(),upper()
>>> str2 = 'My nAme is tonY!'>>> str2.lower()  # 将英文字符串全部变小写my name is tony!>>> str2.upper()  # 将英文字符串全部变大写MY NAME IS TONY!
  • startswith,endswith
>>> str3 = 'tony jam'# startswith()判断字符串是否以括号内指定的字符开头,结果为布尔值True或False>>> str3.startswith('t') True>>> str3.startswith('j')False# endswith()判断字符串是否以括号内指定的字符结尾,结果为布尔值True或False>>> str3.endswith('jam')True>>> str3.endswith('tony')  False
  • split,rsplit
# split会按照从左到右的顺序对字符串进行切分,可以指定切割次数>>> str5='C:/a/b/c/d.txt'>>> str5.split('/',1)['C:', 'a/b/c/d.txt']  # rsplit刚好与split相反,从右往左切割,可以指定切割次数>>> str5='a|b|c'>>> str5.rsplit('|',1)['a|b', 'c']
  • join
# 从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串>>> '%'.join('hello') # 从字符串'hello'中取出多个字符串,然后按照%作为分隔符号进行拼接'h%e%l%l%o'>>> '|'.join(['tony','18','read'])  # 从列表中取出多个字符串,然后按照*作为分隔符号进行拼接'tony|18|read'
  • replace
# 用新的字符替换字符串中旧的字符>>> str7 = 'my name is tony, my age is 18!'  # 将tony的年龄由18岁改成73岁>>> str7 = str7.replace('18', '73')  # 语法:replace('旧内容', '新内容')>>> str7my name is tony, my age is 73!# 可以指定修改的个数>>> str7 = 'my name is tony, my age is 18!'>>> str7 = str7.replace('my', 'MY',1) # 只把一个my改为MY>>> str7'MY name is tony, my age is 18!'
  • isdigit
# 判断字符串是否是纯数字组成,返回结果为True或False>>> str8 = '5201314'>>> str8.isdigit()True>>> str8 = '123g123'>>> str8.isdigit()False

4、需要在脑子中有印象的方法,以后备查

# ###1.find,rfind,index,rindex,count# 1.1 find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1>>> msg='tony say hello'>>> msg.find('o',1,3)  # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引1  # 1.2 index:同find,但在找不到时会报错>>> msg.index('e',2,4) # 报错ValueError# 1.3 rfind与rindex:略# 1.4 count:统计字符串在大字符串中出现的次数>>> msg = "hello everyone">>> msg.count('e')  # 统计字符串e出现的次数4>>> msg.count('e',1,6)  # 字符串e在索引1~5范围内出现的次数1#### 2.center,ljust,rjust,zfill>>> name='tony'>>> name.center(30,'-')  # 总宽度为30,字符串居中显示,不够用-填充-------------tony------------->>> name.ljust(30,'*')  # 总宽度为30,字符串左对齐显示,不够用*填充tony**************************>>> name.rjust(30,'*')  # 总宽度为30,字符串右对齐显示,不够用*填充**************************tony>>> name.zfill(50)  # 总宽度为50,字符串右对齐显示,不够用0填充0000000000000000000000000000000000000000000000tony#### 3.expandtabs>>> name = 'tonyhello'  # 表示制表符(tab键)>>> nametony    hello>>> name.expandtabs(1)  # 修改制表符代表的空格数tony hello#### 4.captalize,swapcase,title# 4.1 captalize:首字母大写>>> message = 'hello everyone nice to meet you!'>>> message.capitalize()Hello everyone nice to meet you!  # 4.2 swapcase:大小写翻转>>> message1 = 'Hi girl, I want make friends with you!'>>> message1.swapcase()  hI GIRL, i WANT MAKE FRIENDS WITH YOU!  #4.3 title:每个单词的首字母大写>>> msg = 'dear my friend i miss you very much'>>> msg.title()Dear My Friend I Miss You Very Much #### 5.is数字系列#在python3中num1 = b'4' #bytesnum2 = u'4' #unicode,python3中无需加u就是unicodenum3 = '四' #中文数字num4 = 'Ⅳ' #罗马数字####isdigt:bytes,unicode>>> num1.isdigit()True>>> num2.isdigit()True>>> num3.isdigit()False>>> num4.isdigit() False####isdecimal:uncicode(bytes类型无isdecimal方法)>>> num2.isdecimal() True>>> num3.isdecimal() False>>> num4.isdecimal() False####isnumberic:unicode,中文数字,罗马数字(bytes类型无isnumberic方法)>>> num2.isnumeric() True>>> num3.isnumeric() True>>> num4.isnumeric() True#### 三者不能判断浮点数>>> num5 = '4.3'>>> num5.isdigit()False>>> num5.isdecimal()False>>> num5.isnumeric()False'''总结:    最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景    如果要判断中文数字或罗马数字,则需要用到isnumeric。'''#### 6.is其他>>> name = 'tony123'>>> name.isalnum() #字符串中既可以包含数字也可以包含字母True>>> name.isalpha() #字符串中只包含字母False>>> name.isidentifier()True>>> name.islower()  # 字符串是否是纯小写True>>> name.isupper()  # 字符串是否是纯大写False>>> name.isspace()  # 字符串是否全是空格False>>> name.istitle()  # 字符串中的单词首字母是否都是大写False

今天先学习字符串的方法,确实有点多,我认为不需要死记硬背,多去敲敲代码,脑子中有个印象就好,明天再学习字典、列表等的使用。


我是一名热爱编程的小学体育老师,以上是本人自学中的一点粗浅的理解和总结,有理解不到或错误的地方,还望路过的大牛们给予指正!在下感激不尽!如果以上知识恰巧对您有所帮助,那将是我的荣幸。

如果您也是初学者,不妨关注一下,大家互相交流,共同打卡学习!

e0268d673c12046e0bf5a5a0d2295b02.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值