python基础及常用数据类型汇总

一、格式化输出:
第一种:
%s为字符串;%d为整行。
"""
name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入工作:')
hobbie = input('你的爱好:')

msg = '''------------ info of %s -----------
Name : %s
Age : %d
job : %s
Hobbie: %s
------------- end -----------------''' %(name,name,int(age),job,hobbie)
print(msg)
"""
name = input('请输入姓名')
age = input('请输入年龄')
height = input('请输入身高')
msg = "我叫%s,今年%s 身高 %s 学习进度为3%%s" %(name,age,height)
print(msg)

二、数据类型:
1、整型:int
i.bit_length() 返回2进制

2、字符串:str
1)字符串的索引与切片
切片 :顾头不顾尾
s[首:尾:步长]
2)字符串的操作
s1 = s.capitalize() # 首字母大写
s2 = s.upper() # 全大写,
s21 = s.lower() # 全小写
s3 = s.swapcase() #大小写翻转
s4 = s.title() # 每个隔开(特殊字符或者数字)的单词首字母大写
s5 = s.center(20,'~') #居中,空白填充 20长度 后面为填充物
s6 = s.expandtabs(7) #转换Tab 将tab转换为7个空格
s7 =s.startswith('alex') #判断是否已alex开头
s7 =s.endswith('alex') #判断是否已alex结尾
find 通过元素找索引,找不到返回-1
index通过元素找索引,找不到报错
strip(' ')默认删除前后空格,可加字符串
rstrip lstrip 左右开删
split str ---->list
#format的三种玩法 格式化输出
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白')
print(s)
name = input('请输入名字:')
s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl')
print(s)
name = input('请输入名字:')
s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl')
print(s)
# s11 = s.replace('街坊','老王',1) 将街坊替换成老王

3、列表:list
1)增加 append insert
li.insert(4,'春哥')
li.append('日天')
2)删
name = li.pop(1) # 返回值
name = li.pop() # 默认删除最后一个
li.remove('taibai') # 按元素去删除
li.clear() # 清空
del li[0:2] # 切片去删除
3)改
li[0] = '男兽'
li[0] = [1,2,3]
4)切片 按照元素切片
li[0:3] = '云姐plfdslkmgdfjglk'
li[0:3] = [1,2,3,'春哥','咸鱼哥']
5)查
for i in li:
print(i)
print(li[0:2])
6)正向排序
li.sort()
7)反向排序
li.sort(reverse=True)
8)反转
li.reverse()
9)列表的嵌套
print(li[1][1])

4、元祖:tuple #元祖 只读列表,可循环查询,可切片。
#儿子不能改,孙子可能可以改。

5、字典:dict
####不可变数据类型:元组,bool int str 可哈希
####可变数据类型:list,dict set 不可哈希
1)增:
# dic1['high'] = 185 #没有键值对,添加
# dic1['age'] = 16 #如果有键,则值覆盖
# dic1.setdefault('weight',150) # 有键值对,不做任何改变,没有才添加
2)删
# print(dic1.pop('age')) # 有返回值,按键去删除
# print(dic1.pop('二哥',None)) # 可设置返回值
# print(dic1.popitem()) # 随机删除 有返回值 元组里面是删除的键值。
# dic1.clear() #清空字典
3)改 update
# dic = {"name":"jin","age":18,"sex":"male"}
# dic2 = {"name":"alex","weight":75}
# dic2.update(dic) #
#
# print(dic)
# print(dic2)
4)查
# print(dic1.keys(),type(dic1.keys())) #键值
# print(dic1.values()) #值
# print(dic1.items()) #键值对

# for k,v in dic1.items():
# print(k,v)
get方法查键值,没有返回字符串
# print(dic1.get('name1','没有这个键'))

6、集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
# set1 = set({1,2,3})
# set2 = {1,2,3,[2,3],{'name':'alex'}} # 错的
1)增:
#add
# set1.add('女神')
# print(set1)
# update
# set1.update('abc')
# print(set1)
2)删:
# set1.pop() # 随机删除,有返回值
# set1.remove('alex') # 按元素
# set1.clear() # 清除
# del set1 # 删除
3)查:
print(set1 & set2) #对比输出重复
print(set1.intersection(set2)) #对比输出重复
print(set1 | set2) #对比输出所有,不重复
print(set2.union(set1)) #对比输出所有,不重复
print(set1 ^ set2) #对比去掉重复
print(set1.symmetric_difference(set2)) #对比去掉重复
print(set1 - set2) #set1减去set2中有的
print(set1.difference(set2)) #set1减去set2中有的
# set1 = {1,2,3,}
# set2 = {1,2,3,4,5,6}
#
# print(set1 < set2)
# print(set1.issubset(set2)) # 这两个相同,都是说明set1是set2子集。

# print(set2 > set1)
# print(set2.issuperset(set1)) # 这两个相同,都是说明set2是set1超集。


6、布尔值:0 1

三、数据类型转换:
1、int ----> str
i = 1
s = str(i)
2、str ---> int
s = '123'
i = int(s)
3、int ----> bool
非零转换成bool True 0 转换成bool 是False
4、bool --->int
true为1 false为0
5、str --->bool
非空为true 空位false
6、str ---->list
split
7、list -----> str
s = '++++'.join(list)
8、range 数字类型排序

四、逻辑运算:
1、优先级,()> not > and > or
2、int ----> bool 非零转换成bool True 0 转换成bool 是False
3、bool --->int true为1 false为0
4、'''x or y x True,则返回x'''
5、'''x and y x True,则返回y'''

五、编码:
1,各个编码之间的二进制,是不能互相识别的,会产生乱码。
2,文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)

猜你喜欢

转载自www.cnblogs.com/happyeast/p/11863047.html
今日推荐