第二篇:python基础(数据类型与循环)
数据类型:
一 、整数类型
如: 18、73、84
bit_length():整数类型对应的二进制长度:
1 n = 1 2 print(n.bit_length()) 3 #1 4 n = 2 5 print(n.bit_length()) 6 #2 7 n = 3 8 print(n.bit_length()) 9 #2 10 n = 4 11 print(n.bit_length()) 12 #3 13 n = 5 14 print(n.bit_length()) 15 #3
二、字符串类型
如:'qqqq'、'www'
字母变大写
1 name = 'gouge' 2 value = name.upper() 3 print(value) 4 5 判断是不是全部都是大写 6 print(name.isupper())
字母变小写
1 name = 'DAge' 2 v = name.lower() 3 print(v) 4 5 #判断是否是小写 6 print(name.islower()
去除首尾的空格,换行,制表符
1 s = ' 111 ' 2 l = s.strip() 3 print(l) 4 #若规定去除左边或者右边的空格 5 #用lstrip() & rstrip() 6 #去除指定的内容 7 s = '**hello,world**' 8 l = s.strip(*) 9 print(l)
获取字符串长度
1 string = 'abcdefghijklmnopqruvwxyz标准' 2 length = len(string) 3 print(length)
字符串的替换
1 一: 2 string = 'abcdefghijklmnopqruvwxyz标准' 3 new = string.replace('def','DEF') 4 print(new) 5 二: 6 v = '谁是谁的谁,你是谁' 7 value = v.replace('谁','who',5) { 替换字符串中的第三个参数,可以控制它替换的个数} 8 print(value)
判断当前字符中是否全部是数字
isdecimal()
首字母大写
1 new_list = 'hahaha啥玩意儿' 2 length = new_list.capitalize() 3 print(length) 4
连接字符串中的每个字符(包括标点符号)
1 new_str = 'haha,ha,啥玩,意儿' 2 length = 'xxx'.join(new_str) 3 # 引号中可以为任何,切记只适用于字符串类型! 4 print(length)
判断字符串开头结尾的字符
1 new_str = 'haha,ha,啥玩,意儿' 2 length = new_str.startswith('ha') 3 # 字符串类型一定要在括号中加引号 4 print(length) --true
自定义几位,不够用_补全,自定义变量默认在中间
1 u1 = "zhang" 2 u2 = u1.center(20 ,'_') 3 print(u2
查看变量在字符串中出现了几次,可自定义查看多少位
u1 = "zhangyanlin is zhgod" u2 = u1.count(“'zh”) print(u2) #自定义zh在前十位出现了几次 u1 = "zhangyanlin is zhgod" u2 = u1.count('zh',0, 10) print(u2)
找位数,相同只能找第一个出现的,没有响应会反馈-1
1 u1 = "zhang hello" 2 print(u1.find('a')) 3 #注意:从第一位开始是从0开始数的
格式化字符串
1 print("name {0}, age {1}".format("zhang",18)) 2 #0,1代表占位符
判断(返回布尔值)
1 u1 = ‘zhNG is yan’ n 2 #判断是否是字母 3 print(u1.isalpha()) 4 5 #判断是否是数字 6 print(u1.isdigit()) 7 8 #判断是否是字母和数字 9 print(u1.isalnum() 10 11 #判断是否有空格 12 print(u1.isspace())
三、布尔值类型
布尔类型只有两种值:true和false
四、列表类型
如:[11,22,33]、['ww','qq','zz']
可以根据索引取值,也可以切片取值
追加
1 list1 = ['a','b','c',0,1,] 2 list1.append('2') 3 print(list1) 4 此方法默认追加在末尾
在指定位置插入数据
1 list1 = ['a','b','c',0,1,] 2 list1.insert(3,'d') 3 print(list1)
将列表的顺序反转
1 new_list = ['a','b','c',0,1,] 2 new_list.reverse() 3 print(new_list)
计算类表的长度
1 new_list = ['a','b','c',0,1,] 2 length = len(new_list) 3 print(length)
字符出现次数
1 name_list = ["zhangyanlin","suoning","nick"] 2 name_list.append('zhang') 3 name_list.append('zhang') 4 name_list.append('zhang') 5 print(name_list.count('zhang'))
加入数据,可批量加入
1 name_list = ["zhangyanlin","suoning","nick"] 2 name = ["aylin","zhang","yan","lin"] 3 name_list.extend(name) 4 print(name_list)
找到字符所在位置
1 name_list = ["zhangyanlin","suoning","nick"] 2 print(name_list.index('nick'))
从左往右移除,只找第一个
1 name_list = ["zhangyanlin","suoning","nick"] 2 name_list.remove('nick') 3 print(name_list)
删除元素,可自定义删除
1 ll = ['sdsd', 'ssss', 'ffff', 7, 8, 9, 10] 2 del ll[0:2] 3 print(ll)
删除
pop()
remove,pop,del三种方法的区别:
1 remove(item)方法是直接对可变序中的元素进行检索删除,返回的是删除后的列表,不返回删除值(返回None) 2 list1=[1,3,6,7,8] 3 print list1.remove(3) #对列表元素进行搜索删除,而不是下表 4 print list1 5 6 None 7 [1,6,7,8] 8 9 pop(index)方法是对可变序列中元素下标进行检索删除,返回删除值 10 list1=[1,3,6,7,8] 11 print list1.pop(3),#对列表下表进行检索删除 12 print list1 13 14 7 15 [1,3,6,8] 16 17 dict1={'Abby':21,'Bob':22,'cindy':21} 18 print dict1.pop(1) 19 print dict1 20 21 del(list[index])方法是对可变序列中元素下边进行检索删除,不返回删除值 22 list1=[1,3,6,7,8] 23 del list[3] 24 print list1 25 26 [1.3,6,8]
五、元组类型
如:(11,22,33)、('wupeiqi', 'alex')
1 一旦初始化,里面的子元素就不能在进行修改,但是为了安全起见,尽可能使用元祖 2 它拥有列表索引方法f也可以使用for 循环 3 4 如果要访问某一个人,就直接取索引 5 6 虽然元组是不可修改的,但是可以将他转化成别的类型,再进行修改,如列表
六、字典类型
如:{'name': 'wupeiqi', 'age': 18} 、{'host': '2.2.2.2', 'port': 80]}
1 字典(dict)是一个存放无序的键值映射(key/value)类型数据的容器字典的键可以是数 2 字、字符串或者是元组,键必须唯一。在Python中,数字、字符串和元组都被设计成不可变类型, 3 而常见的列表以及集合(set)都是可变的,所以列表和集合不能作为字典的键。键可以为任何不 4 可变类型,这正是Python中的字典最强大的地方 5 结构: 6 dict1 = {'key':'value','key':'value','key':'value',} 7 字典里面的元素可以重复,元素中,前面的称为键值对,而键值相当于列表中的索引, 8 可以根据键值,找出相对应的值也可以通过key值改变相对应的值,一个key只能对应一个value 9 当key不存在时会报错,而为避免这种错误 ,有两种方法 10 ---通过in判断key是否存在 11 如: 12 'key' in dict返回值为布尔类型 13 ---通过get方法如果key不存在返回None,存在返回value 14 删除 同样使用del输入key
七、集合类型
dict是建立了一系列的映射关系,而set是建立一系列无序的,且不重复的元素。
添加,可以重复添加,但是没有效果
add()
1 add()添加,有重复元素可以添加,但不会有效果: 2 3 >>> S.add(4) 4 >>> S 5 6 {1, 2, 3, 4, 5} 7 8 >>> S.add(9) 9 >>> S 10 11 {1, 2, 3, 4, 5, 9}
八、浮点类型
如:3.14、2.88
数据类型总结:
按存储空间的占用分(从低到高)
数字 字符串 集合:无序,即无序存索引相关信息
元组:有序,需要存索引相关信息,不可变 列表:有序,需要存索引相关信息,可变,需要处理数据的增删改 字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改
按存值个数区分
标量/原子类型 | 数字,字符串 |
容器类型 | 列表,元组,字典 |
按可变不可变区分
可变 | 列表,字典 |
不可变 | 数字,字符串,元组 |
循环的两种方式:
while循环和for循环
while为无限循环
for为字符串中逐个循环
break 和continue
break 打断循环,终止
continue 跳出本次循环,进行下次循环
举个栗子:
使用range实现打印100, 99, 98…1, 0。
1 for v in range(100,-1,-1): #(-1为步长,倒着没有步长不能取,其余情况都可以) 2 print(v)
for 循环代表是字符串中的字符循环,但是! 加一个range就成了将这个整数类
型的从左到右依次给单独循环表示出来
分别使用for和while循环实现 1 - 2 + 3 - 4 + 5…+99
1 count = 0 2 for v in range(1,100): 3 if v%2 == 1: 4 count = count+v 5 elif v%2 == 0: 6 count =count -v 7 print(count)
1 num = 0 2 sun = 0 3 while num < 99 : 4 num += 1 5 if num %2 == 1 : 6 sun = sun + num 7 elif num%2 == 0 : 8 sun = sun - num 9 print(sun)
有以下数字:1,2,3,4,5,6,7,8 共八个数字,能组成多少个互不不相同且⽆无重复的两位数?
1 num = 0 2 for a in range(1,9): 3 for b in range(1,9): 4 if a != b : 5 num += 1 6 print(num)
睡觉没前途( ̄o ̄) . z Z 熬夜加班(/"≡ _ ≡)/~┴┴熬夜成瘾(,,•﹏•,,)你丑你先睡(*^︹^*) (ノ◕ω◕)ノ