8、range常见用法和基本数据类型的内置方法

range的使用

python2和python3中的range定义有点区别,python2中range() 生成的是真实的列表,而python3中生成列表的函数
两者之间区别类似于母鸡和蛋
range(10)  #顾头不顾尾,不写默认从0开始,打印出0-9
range(2,8,2)  #表示从2开始,每隔两个数取一次值

基本数据类型及其内置方法

int类型
1. 作用:整形是不可变类型,记录事物的状态,
2. 定义:a=12,其内部是调用了int方法;不可变类型
3. 类型转换 :纯数字的字符串可以转为整型。例a="123"   print(int(a),type(int(a)))
4. 内置方法::
float类型
1. 作用:
2. 定义:a=12.3,其内部是调用了float方法;不可变类型
3. 类型转换:底层调用了float方法
4. 内置方法:
字符串类型
1. 作用:
2. 定义: a="jiang1223",其内部是调用了str方法;不可变类型
3. 类型转换:	底层调用了str方法
	str()  
4. 内置方法(会产生新的值):
    name="xiangxiang"
    name.join(可迭代对象)   #使用name作为间隔插入到可迭代对象的元素之间,最终生成一个新的字符串
    ------------------
    name.strip()    #未指定参数则默认去掉的字符串前后空格,如果需要去掉特殊符号需加上字符串参数,如strip("*")
    name.replace(“x”,"k")  #用k替换字符串中全部的x
    name.split("k")  #会以字符串中k字符作为分割,将切割后的字符串组成列表
    --------------------------
    name.upper()   #将字符串中的小写字母转为大写
    name.lower()   #将字符串中的大写字母转为小写
    name.capitalize()  #将字符串中第一个字母大写
    name.title()  #字符串中以空格为分隔符,每个字符串首字母大写
    -------------------------
    name.center(30,"*")  #字符串居中打印,总长度是30,剩余部分使用*填充
    name.rjust(30,"#")    #字符串靠右打印,总长度是30,剩余部分使用#填充
    name.ljust(30,"#")     #字符串靠左打印,总长度是30,剩余部分使用#填充
    -------------------------
    name.index("t")    #返回的是t在字符串中索引,但是如果字符串中没有t,则会报错
    name.endwith(“a”)    #判断字符串是否以字符a结尾,返回的结果为布尔值
    name.startwith("b")   #判断字符串是否以字符a开头,返回的结果为布尔值
    ----------------------------
    name.count("a")  #查询字符串中a字符的个数,返回的是整形
    ----------------------------
    name.isalnum()  #判断字符串中是否只有字母和数字组成,返回值为布尔值
    name.isalpha()  #判断字符串中是否只由字母组成,返回值为布尔值
    name.isdigit()  #判断字符串中是否由数字组成,返回值为布尔值

   其他操作:
   len(name)
   支持for循环取值
   
   字符串的取值
   name[2]   #取出字符串中index=2的字符
   name[2:4]  #取出字符串中索引从2-4的字符,生成另外一个字符串
   name[::-1]  #将字符串顺序颠倒,生成一个新的字符串
列表类型
1. 作用:
2. 定义:L=["姓名",“age”,24]  ,列表是可变类型
3. 类型转换:底层调用的是list方法
4. 内置方法:
   name=["xing","jiang","shi","nian"]
   name.append(“1”)    #添加1到列表的末尾
   name.index("shi")    #打印元素对应的索引,返回的是整形
   name.count("shi")    #打印列表对应含有对应元素的个数,返回的是整形
   name.pop(0)     #默认会删除列表的最后一个元素,也可指定元素的索引删除指定的元素
   name.remove("jiang")  #必须定制要删除的元素,否则报错
   name.clear()   #清空列表内容
   name.copy()   #copy一个列表指向一个新值
   name.sort()     #会按照字符的大小从大排序,这个内置方法只允许列表内有整型或者字母其中一种,否则比较的时候会报错
   name.insert(1,"zengjia")   #在索引为1前插入元素“zengjia”
   name.extend(可迭代对象)   #j将可迭代对象for循环取值,然后将值追加到列表的后面
   name.reverse()   #将列表顺序反转

  其他操作:
  len(name)
  支持for循环取值
  
  列表的取值:
  name[0]   #取出索引为0的元素
  name[0:2]  #取出列表种的值,生成新的列表,顾头不顾尾
  name[0:3:2]  #每隔2个元素取一次值,然后组成一个新的列表,顾头不顾尾

  列表的特点
  增删改查; 可存、可取、可改
元组
1, 作用:
2. 定义:a=(1,"xingming",27),如果是一个值的话需要如下定义:a=(1,);元组内的索引对应的元素是不可变得
3. 类型转换:底层调用了tuple方法
    tuple(可迭代对象)
4. 内置方法:
	name=("xiao",1,"ming")
	name.index("xiao")  #返回元素的索引值
	name.count("xiao")  #返回元组中包含元素的个数

其他操作:
	len(name)
	支持for循环取值

元组的特点:
只允许取,不能存或改

字典类型
1. 作用:
2. 定义: attri={"name":"jinjin","age":24,"class":"one"},可变类型
3. 类型转换:底层调用的是dict方法;dict的本质是调用了for循环
dict([("class","one"),("class1","two")])
dict(a=1,b=2,c=3)

4. 内置方法:
 attri={"name":"jinjin","age":24,"class":"one"}
 attri.pop("name")   # 必须指定需要删除元素的key,
 attri.popitem()   #不需要传入参数,默认删除字典中最后一个key:value
 attri.clear()  #清空字典中的内容
 attri.copy()   #copy字典内容,并赋值给新的值
 attri.keys()  #生成以key为元素的dict_keys类型的列表
 attri.values()  #生成以value为元素的dict_value类型的列表
 attri.items()  #将字典中没对key:value一对组合生成一个列表
 attri.get("name")  #获取key对应的value
 {}.fromkeys(attri,None)  #使用attri的key快速初始化一个集合,vlaue默认都是None

 其他类型:  
 	len(attri)  #集合中key的个数
 	字典for循环取值得到的是key

 字典的特点:
 	增删改查,可存,可取,可改
 	字典的key必须唯一,且为不可变类型,value是任意类型
集合类型
 1. 作用:逻辑运算、去重,集合一般当作整体去看待
 2. 定义:a={1,2,4,"xiaoming"}  注意:{} 这个表示空字典,空集合表示方法为set();集合内的元素必须为不可变类型
 3. 类型转换:底层调用了set方法
      set([1,2,3,4])
 4. 内置方法:
      name1={"xiao","xing","qian"}
      name2={"xiao","li","zhang"}
      name1.add()  #添加相应的元素
      name1.pop()   #随机删除集合中的一个元素,返回值为删除的元素
 	  name1.remove("xing")  #删除指定的元素,如果元素不存在则报错
 	  name1.discard("xing")  #删除指定元素,元素不存在不报错,返回None
      name1.copy()  #重新复制该集合
      name1.clear()   #清空集合,返回值为None
      name1.update("change")  #更新集合,参数为可迭代对象,返回值为None
  -------------------
      name1.difference(name2)   #求差集   类似于  name1-name2
      name1.difference_update()  #用差集来覆盖原集合内容
      name1.intersection(name2)  #求交集  类似于name1 & name2
      name1.intersection_update(name2) #用交集来覆盖原集合内容
      name1.isdisjoint(name2)  #两个集合有交集则返回False,没有交集则返回True
      name1.issubset()  #顾名思义,子集
      name1.issuperset()  #父集
      name1.symmetric_difference(name2)  #l两个集合的差并集  类似于 name1 ^ name2
      name1.symmetric_difference_update(name2)  #两个集合的差并集覆盖到name1集合
      name1.union(name2)  #求并集

其他类型:
	len(name1)   #集合内元素的个数
	集合支持for循环取值

集合的特点:
	1.  集合内元素没有顺序
	2.  集合是一个整体,没有索引的概念
	3.  集合去重后,元素的顺序无法保证
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据工匠大壮

请狠狠粗暴的爱我!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值