python基础 ——运算符、数据类型

目录

一、运算符

1、算数运算符 

2、赋值运算

3、比较运算

4、逻辑运算

5、成员运算

二、基本数据类型

数字类型

布尔值  bool类

字符串 str

元组  tuple类

列表  list

字典 dict

 集合set


一、运算符

1、算数运算符 

2、赋值运算

3、比较运算

4、逻辑运算

5、成员运算

二、基本数据类型

数字类型

Python的数字类型有int整型、long长整型、float浮点数、complex复数

int整型的数值大小取决于计算机的位数   如:

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,

Python的long整型没有指定位宽

自从Python2.2起,如果整数(int)发生溢出,Python会自动将整数数据转换为长整数

int    将字符串数据类型转为int类型,  

s = '1234'  注:字符串内的内容必须是数字
i = int( s )
print( i)

bit_length()   将数字转换为二进制,并且返回二进制的位数

i =6
print( i.bit_length() )

#输出结果为:3

布尔值  bool类

就两个值True与False  主要用于逻辑判断

字符串 str

字符串相当于一个列表,在python中可以用单引号或双引号创建字符串

索引 index()、find()

字符串的第一个字母位置为0
>>>name = "adfadfa"
index()
>>> print(name.index('a',)) 从第一个字母开始找,返回找到的第一个a的位置
0
>>> print(name.index('a',1,6))  从位置1~6范围(不包括6)内找 返回找到的第一个a的位置
3
find()与index()作用相同 唯一不同的是:索引的该字符或者序列不在字符串内,对于index报错: 而对于find 返回 -1
>>> print(name.index('a',1,3))
Traceback (most recent call last):
  File "<pyshell#47>", line 1, in <module>
    print(name.index('a',1,3))
ValueError: substring not found

>>> print(name.find('a',1,2))
-1

切片

切片
>>> name = "adfadfa"
>>> name[0]    这里用到了列表
'a'
>>> name[1]
'd'
>>> name[0:3] 
'adf'

长度  len()  此函数可以用于其他数据类型,如查看列表、元组以及字典中元素的多少

name = "adfadfa"
>>> print(len(name))
7

删除字符串

>>> del name
>>> name
Traceback (most recent call last):
  File "<pyshell#56>", line 1, in <module>
    name
NameError: name 'name' is not defined

判断字符串内容  isalnum()、isalpha()、isdigit()

isalnum()、isalpha()、isdigit() 三个用法相同,功能不同
isdigit()判断字符串是否全为数字
isalpha() 判断字符串是否全为字母
isalnum()判断字符串是否全为字母或字符串

>>> name = "adfadfgf"
>>> name.isalpha() 判断字符串是否全为字母
True

大小写转换  capitalize()、lower()、upper()、title()、casefold()

capitalize()、lower()、upper()、title()、casefold() 用法相同,功能不同
capitalize()首字母大写
lower()     全部转为小写
upper()     全部转为大写
casefold()  每个单词大小写转换
title()     转为标题(首字母大写)
>>> i = "i am boy"
>>> print(i.title())
I Am Boy
>>> print(i.capitalize())
I am boy

分割  split()

i = "i am boy"
print(i.split(" ")) 以空格分割
print(i.split("a")) 以字母a分割

输出:
['i', 'am', 'boy']
['i ', 'm boy']

格式化输出

format()的三种方法 格式化输出
 s = '我叫{},今年{}'.format('wang',36)
 print(s) 
 name = input("请输入你的名字")
 s = '我叫{1},今年{0}'.format(36, name)
 print(s)
 name = input('请输入名字:')
 s = '我叫{name},今年{age}'.format(age=18,name=wang)
 print(s)
剔除 strip()
name='***(kajfkdjkl**'
print(name.strip('*'))
print(name.lstrip('*'))
print(name.rstrip('*'))
输出:
(kajfkdjkl
(kajfkdjkl**
***(kajfkdjkl

替换 replace()

name='xiaoming say: my name is xiaoming'
print(name.replace('xiaoming','bai'))
print(name.replace('xiaoming','bai',1))   1代表将第一个匹配到的字符串替换掉
输出:
bai say: my name is bai
bai say: my name is xiaoming

判断是否以什么开头和结尾

name='xiaoming say: my name is'
print(name.endswith("is"))
print(name.startswith("xiaoming"))
输出:
True
True

计算字符串中某个元素出现的个数

name='xiaoming say: my name is'
print(name.count("s"))
输出
2

居中

name='XXXXXX'
print(name.center(20, "*"))
输出
*******XXXXXX*******

元组  tuple类

元组为只读列表,用小括号  name = ("xiaoli","xiaowang")

列表  list

相当于c语言中的数组 列表是有序的,可以索引、切片 。  创建一个数组  i = ["xiaowang",213,"xiaoming"]

增加元素

name = [1, 2, 3, 'a', 'b']
name.insert(3, "ss")    按索引添加 (只能添加一个元素)
print(name)
输出:
[1, 2, 3, 'ss', 'a', 'b']


name = [1, 2, 3, 'a', 'b']
name.append("ll")         在末尾添加(只能添加一个元素)
print(name)
name.append([123,"kk"])  
print(name)
输出:
[1, 2, 3, 'a', 'b', 'll']
[1, 2, 3, 'a', 'b', 'll', [123, 'kk']]


name = [1, 2, 3, 'a', 'b']
name.extend('q')              迭代的增加
print(name)
name.extend(['q','aa','ff'])
print(name)
输出:
[1, 2, 3, 'a', 'b', 'q']
[1, 2, 3, 'a', 'b', 'q', 'q', 'aa', 'ff']

删除元素

name = [1, 2, 3, 'a', 'b']
name.pop(1)           按照索引值删除 (只能删除一个)
print(name)
输出:
[1, 3, 'a', 'b']


name = [1, 2, 3, 'a', 'b']
del name[0:2]         按照索引值删除 (顾头不顾尾)
print(name)
输出:
[3, 'a', 'b']


name = [1, 2, 3, 'a','a', 'b']
 name.remove('a')         #按照元素去删除 (只能删除第一个匹配到的元素)
 print(name)
输出:
[1, 2, 3, 'b']


name = [1, 2, 3, 'a', 'b']
name.clear()          清空列表 (列表还在,只是没有元素)
print(name)
输出:
[]

替换元素

name = [1, 2, 3, 'a', 'b']
name[0] = 5
name[3: -1] = ['dd', 'rr']
print(name)
输出:
[5, 2, 3, 'dd', 'rr', 'b']

其他操作

count() 方法统计某个元素在列表中出现的次数)

name = [1, 2, 3, 2, 'a', 'b', 'a']
print(name.count(2))       
print(name.count('a'))
输出:
2
2

index(方法用于从列表中找出某个值第一个匹配项的索引位置)
name = [1, 2, 3, 2, 'a', 'b', 'a']
print(name.index(2))    
print(name.index(2,2,-1))   index(self, value, start=None, stop=None) 
输出:
1
3

sort (方法用于对列表进行排序(从小到大))
name = [1,2,5,56,3]; kk = ['a','k','az','de'] 只能是纯数字 或 纯字符串
name.sort(); kk.sort()                
print(name,kk)
输出:
[1, 2, 3, 5, 56] ['a', 'az', 'de', 'k']

reverse (方法将列表中的元素反向存放)
name = [1,2,5,56,3]
name.reverse()         
print(name)
输出:
[3, 56, 5, 2, 1]

字典 dict

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组

创建与查看字典  :

dic = { 'name' : ['大猛','小孟'],'age':16}
print(dic['name'][0])
print(dic['age'])
输出:
大猛
16

增加键值对

dic = { 'name' : ['大猛','小孟'],'age':16}
dic["city"] ="beijing"  如果字典中没有这个键(key)则添加,如果有则覆盖     
print(dic)


setdefault  有键(key),不做任何改变,没有才添加。
dic = { 'name' : ['大猛','小孟'],'age':16}
dic.setdefault('age',45)
print(dic)
dic.setdefault('city','beijing')
print(dic)
输出:
{'name': ['大猛', '小孟'], 'age': 16}
{'name': ['大猛', '小孟'], 'city': 'beijing', 'age': 16}

删除键值对

pop
dic = { 'name' : ['大猛','小孟'],'age':16}
print(dic.pop('age'))       有返回值为key对应的值
print(dic) 
输出:
16
{'name': ['大猛', '小孟']}


dic = { 'name' : ['大猛','小孟'],'age':16}
del dic['age']              没有返回值
print(dic)
输出:
{'name': ['大猛', '小孟']}

dic = { 'name' : ['大猛','小孟'],'age':0}
print(dic.popitem())        随机删除 有返回值
print(dic)
输出:
('age', 0)
{'name': ['大猛', '小孟']}

dic = { 'name' : ['大猛','小孟'],'age':0}
dic_clear = dic.clear()     清空字典
print(dic,dic_clear)
输出:
{} None

改变键值对

dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic)  # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
print(dic2)
输出:
{'name': 'jin', 'sex': 'male', 'age': 18, 'weight': 75}


dic = { 'name' : ['大猛','小孟'],'age':16}
dic["age"] =66      覆盖age     
print(dic)
输出:
{'name': ['大猛', '小孟'], 'age': 66}

其他操作

keys()     以列表的形式返回所有键的信息
values()    以列表的形式返回所有值的信息
items()    以列表的形式返回所有键值对的信息

>>> dic = { 'name' : ['大猛','小孟'],'age':16}
>>> print(dic.values())
dict_values([16, ['大猛', '小孟']])
>>> print(dic.keys())
dict_keys(['age', 'name'])
>>> print(dic.items())
dict_items([('age', 16), ('name', ['大猛', '小孟'])])

字典的循环

dic = {"name":"wang","age":19}
for key in dic:
     print(key)
for item in dic.items():
    print(item)
for key, value in dic.items():
    print(key,value)
输出:
name
age
('name', 'wang')
('age', 19)
name wang
age 19

 集合set

可变的数据类型,但是他里面的元素必须是不可变的数据类型,无序,不重复,他有两个特点:

   去重,把一个列表变成集合,就自动去重了。  

        关系测试,测试两组数据之前的交集、差集、并集等关系

创建集合  :a = {1,2,4,3,"aaaa"}  或 a = set({1,2,4,3,"aaaa"})

增加元素

add()
set1 = {'ad','adff','wangg','iou'}
set1.add('iiiiii')                
print(set1)
输出
{'wangg', 'iou', 'adff', 'iiiiii', 'ad'}


update()
set1 = {'ad','adff','wangg','iou'}
set1.update('ill')          每一个字母会被当作一个独立的一个元素,
print(set1)
set1.update(['ad','fg'])    加入字符串要用列表加入
print(set1)\
输出:
{'i', 'ad', 'l', 'adff', 'iou', 'wangg'}
{'i', 'ad', 'l', 'fg', 'adff', 'iou', 'wangg'}

删除元素

remove
set1 = {'ad','adff','wangg','iou'}
set1.remove('ad')               指定删除一个元素
print(set1)
输出:
{'iou', 'adff', 'wangg'}


pop()
set1 = {'ad','adff','wangg','iou'}
set1.pop()                      随机删除一个元素 有返回值
print(set1)
输出:
{'adff', 'ad', 'wangg'}


set1.clear()      清空集合
print(set1)

del set1          删除集合
print(set1)

集合的其他操作  交集、并集、差集、反交集、子集与超集、不可变集合(让集合变成不可变类型)

交集:(用&或intersection())
a = {1,2,3,4,5}
b = {4,5,6,7,8}
print(a & b)  
print(a.intersection(b))
输出
{4, 5}
{4, 5}


并集(| 或者 union())
a = {1,2,3,4,5}
b = {4,5,6,7,8}
print(a | b)
print(a.union(b))
输出
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}


差集(- 或者 difference())
a = {1,2,3,4,5}
b = {4,5,6,7,8}
print(a - b)
print(a.difference(b))
输出
{1, 2, 3}
{1, 2, 3}

反交集(^ 或者 symmetric_difference())
a = {1,2,3,4,5}
b = {4,5,6,7,8}
print(a ^ b)
print(a.symmetric_difference(b))
输出
{1, 2, 3, 6, 7, 8}
{1, 2, 3, 6, 7, 8}

子集与超集(若a是b的子集,那b一定是b的超集)
a = {1,2,3}
b = {1,2,3,4,5,6}
print(a < b)
print(a.issubset(b))   这两个相同,都是说明a是b子集。
print(b > a)
print(b.issuperset(a))   这两个相同,都是说明a是b超集

frozenset()让集合变成不可变类型
s = frozenset('aabbcc')
b = {4,5,6,7,8}
frozenset('b')
print(s,type(s))
print(b,type(b))  
输出
frozenset({'b', 'a', 'c'}) <class 'frozenset'>
frozenset({8, 4, 5, 6, 7}) <class 'frozenset'>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值