Python开发【第一篇】:Python基本数据类型

运算符

1、算数运算:

2、比较运算:

3、赋值运算:

4、逻辑运算:

5、成员运算:

基本数据类型

1、数字

int(整型) 所有的功能,都放在int里

-- int 是一个类对象

将字符串转换为数字

a = '123'
print(type(a), a)

b=int(a)
print(type(b),b)

num = '0011'
v= int(num, base=2) //以二进制的方式计算
print(int(v))

age = 4
r = age.bit_length() //计算数字的位数 4 --> 100 --> 输出3 
print(r)
2、布尔值

  真或假

  1 或 0

3、字符串

"hello world"

字符串常用功能:

  • 移除空白
  • 分割   
  • 长度
  • 索引  
  • 切片 
  • 7个基本的魔法:join,strip,split,find,upper,lower,replace
#首字母大写
test = 'alexhagih'
v = test.capitalize()
print(v)

#内容居中,不足宽度的填充*
v= test.center(10,'*')
print(v)

#宽度20向右填充**
test = "alex"
v = test.ljust(20,'*')
print(v)

#宽度20向左填充**
test = "alex"
v = test.rjust(20,'*')
print(v)

#查找子内容
v = test.count('ha')
print(v)

#查找是否以什么开始
test = 'fjad'
v = test.startswith('f')
print(v)

#查找是否以'xx字符'结束
v = test.endswith('ih')
print(v)



#查找字符串并返回下标,找不到就报错,一般不用
v = test.index('h')
print('index: ',v)


#格式化,将一个自负床中的占位符替换为指定的值
test =  'I love {name} {num} 年'
test2 =  'I love {0} {1} 年'
v1 = test.format(name = 'you', num = 12)
v2 = test2.format('you', 12)
v3 = test.format_map({'name':'you','num':12})
print(test)
print('v1',v1)
print('v2',v2)
print('v3',v3)

#判断当前是否是数字
test = '二②2'
v1 = test.isdecimal() #仅十进制的小数
v2 = test.isdigit()     #也支持符号的数,但不支持中文的二
v3 = test.isnumeric()  #都支持,支持符号的数,也支持中文的二
print(v1,v2,v3)

#判断是否是字母
test = 'trt'
v = test.isalpha()
print(v)

#判断是否是数字
test = '435'
v = test.isdigit()
print(v)

#expandtabs,断句20,\t加字母以20为一组
test = 'username\temail\tpassword\nlebron\t4343@qq.mail\t123456\nlebron\t4343@qq.mail\t123456\nlebron\t4343@qq.mail\t123456\n'
v = test.expandtabs(20)
print(v)

#大小写转换
test = 'fdfAA'
v = test.swapcase()
print(v)

#字母,数字,下划线:判断是否为合法的标识符def class
a = 'def'
v = a.isidentifier()
print(v)

#是否存在不可显示的字符
#类似于\t  \n
test = 'oahg\tigh'
v = test.isprintable()
print(v)

#判断是否全部是空格
test = ' '
v = test.isspace()
print(v)

#判断是否是标题, 标题是只有单词的首字母是大写的其他的都是小写的
test = "GGhaigh hgh"
v1 = test.istitle()
print(v1)
v2 = test.title()
print(v2)

v3 = v2.istitle()
print(v3)


******比较重要的*************

*****************************

#将字符串中的每一个元素按照指定分隔符进行拼接
test  = '你是靓仔我是帅哥'
print(test)
#t = '_'
#v= t.join(test)
v = '_'.join(test)
print(v)


输出 v 的结果:你_是_靓_仔_我_是_帅_哥

#字符串替换
test = 'jaigahbbbjahgaijaga'
v = test.replace('ja', 'hh')
print(v)


#判断是否全部是大小写和转换为大小写
test = 'Alex'
v1 = test.islower() #判断是否是小写
v2 = test.lower()  #转换为小写

v3 = test.isupper()
v4 = test.upper()
print(v1,v2,v3,v4)

#从开始往后查找字符串内容并返回下标 , 错误返回-1
v= test.find('n')
print(v)




#字符串分割
test = 'testdgdhissggh'

#parttition分割之后仍然可以取到要分割的值
v = test.partition('s') #  从左往右分割,只分割一次
v = test.rpartition('s')#  从右往左分割,只分割一次

#split分割之后取不到分割出来的值
v= test.split('s') #不带参数分割全部
v= test.split('s',2) #带参数分割参数的次数,这里是2次
v  = test.rsplit('s',2)#从右往左带参数分割参数的次数,这里是2次
print(v)


#只能分割换行 , true,false:是否保留换行,true--保留, false--不保留(默认)
test = 'gaiagi\nihgia\nfa'
v = test.splitlines()
print(v)


*****************************

*****************************



#默认去除空格 \t \n左右空白,加参数就可以去除指定的参数
test = ' \t\nalex '
v1 = test.lstrip()
v2 = test.rstrip()
v3 = test.strip()
print(v3)
#指定去除参数a
test = 'aaxa'
v4 = test.lstrip('a')
print(v4)

#一一对应转换
# test = 'aeiou'
# test1 = '12345'
v = 'jaigahfiieietixxu'
m = str.maketrans('aeiou', '12345')
new_v = v.translate(m)
print(new_v)
#输出结果:j13g1hf33232t3xx5





#*********************灰魔法**********

test = 'alex'

#索引,下标,获取字符串中的某一个字符
v = test[3]
print(v)

#切片
v = test[0:-2]  #负号的意思是从后面数起来到第几个
print(v)

test = '你好'
#len获取当前字符串中有几个字符组成
v = len(test)
print(v)


#帮助创建连续的数字,通过设置步长来指定不连续
#range(100) = range(0,100,1)  --- 正增长
#range(100,0,-2)              ----负增长,以2减少

# v = range(100)
v = range(0,100,5)
for item in v:
    print(item)

#将文字对应的索引打印出来
test = input('>>>>')
for i in range(len(test)):
    print(i, test[i])
4、列表

列表格式:

1、列表可以存放任意的数据类型,包括(数字、字母、列表)

2、列表用中括号括起来

3、用‘,’分割开列表的每个元素

创建列表:

1

2

3

name_list = ['alex''seven''eric']

name_list = list(['alex''seven''eric'])

基本操作:

  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 切片
  • 循环
  • 包含

#***************************深灰魔法*****************

li = [2, 45, 'ifjaif', ['ighi', 54], True]

# 索引取值
print(li[3])
# 切片,切片结果也是列表
print(li[2:4])
# for循环
# while循环
for i in li:
    print(i)

# 列表元素,可以被修改
li = [2, 45, 'ifjaif', ['ighi', 54], True]
li[1] = 20
li[1:3] = [66,88]
print(li)

# 删除, 第一种方式
#索引删除
del li[1]
print(li)

#切片删除
li = [2, 45, 'ifjaif', ['ighi', 54], True]
del li[2:4]
print(li)


# in 操作
li = [2, 45, 'ifjaif', ['ighi', 54], True]
v = 45 in li
print(v)
# 列表中的元素用‘,‘分隔开,那么使用in操作的时候每一个’,‘分割开的元素作为一个整体来判断



# 拿列表里面的列表的值
li = [2, 45, 'ifjaif', ['ighi', 54], True]
v= li[3][1]
print(v)


#列表转换成成字符串
#需要自己写for循环一个一个处理,既有数字又有字符串
li = [11,22,33,'133','agi']
s = ''
for i in li:
    s += str(i)
    #s +=i 会报错
print(s)

#直接使用字符串join方法:列表中的元素只有字符串
li = ['24', 'hig']
v = ''.join(li)
print(v)






pass

li = [5,'fasf', 454]
# 参数
# 原来值基础上最后追加(可以追加数字,字符串,列表)
li.append(6)
li.append('fasf')
li.append(['fhi',9898])
#输出结果:[5, 'fasf', 454, 6, 'fasf', ['fhi', 9898]]

#扩展原列表(在最后面一个一个加上去),参数:可迭代对象(字符串,列表)
li.extend(['fhi',9898])
#输出结果:[5, 'fasf', 454, 6, 'fasf', [43, 'fag'], 'fhi', 9898]
print(li)


# 清空列表
li.clear()
print(li)


li = [5,'fasf', 454]
# copy 拷贝,浅拷贝
v = li.copy()
print(v)

#计算列表中含这个值的个数
v = li.count(6)
print(v)


#根据值获取当前值索引位置(左边优先)
#如果没有找到程序会报错
li = [1,2,3,9,3,10]
v = li.index(3)
print(v)


#在指定索引位置插入元素
li = [1,2,3,4,5,6,7,8,9,10]
li.insert(0,99)
print(li)



# pop,默认删除某个列表中最后一个元素的值,加参数就指定删除哪一个的值
li = [1,2,3,4,5,6,7,8,9,10]
# v = li.pop()
v = li.pop(0)
print(li)
print(v)


#删除列表中的指定值,左边优先只删除一个,没有指定值或者找不到会报错,
li = [1,22,3,4,5,22,7,8,9,10]
li.remove(22)
print(li)

# 删除的方法 pop remove del li[0] del[7:9] clear


#将当前列表进行翻转
li = [1,2,3,4,5,6,7,8,9,10]
li.reverse()
print(li)

#列表的排序, 默认参数是False,升序,加上True可以倒序排序
li = [1,54,76,33]
li.sort()
li.sort(reverse=True)
print(li)

 








5、元祖

注意:
#一般写元祖的时候最好再最后加上一个','用于区分函数和元祖
#元素不可被修改,不能被增加或者删除
#索引取值
#可以被for循环,是可迭代对象
#可以切片

创建元祖:

1

2

3

ages = (1122334455 ,)

ages = tuple((1122334455))

基本操作:

s = '5jfi'
li = ['fij', 43]
tu = (43,25,'54',)

#字符串转化为元祖
v = tuple(s)
print(v)

#列表转换为元祖
v = tuple(li)
print(v)

tu = (111, 'alex', (11,22), [(33,44)],True, 33,44,)
#元祖,有序。
v = tu[3][0][0]
print(v)

#元组的一级元素不可修改/删除/增加
tu = (111, 'alex', (11,22), [(33,44)],True, 33,44,)
#元祖,有序。
v = tu[3][0][0]
print(v)
#v  = tu[3]  # 会报错
#print(v)
tu[3][0] = 567 #这里可以修改,因为tu[3][0]取到的是(33,44)是元组的一级元素的第一个值,所以可以被修改
print(tu)


tu = (11,22,33,44)

tu.count(22) # 获取指定元素在元祖中出现的次数

#tu.index(22) # 获取指定元素在元祖中出现的索引
6、字典(无序)
注意:
#### 字典的value可以是任何值
#### 列表、布尔值、字典 不能作为字典的key

创建字典:

1

2

3

person = {"name""mr.wu"'age'18}

person = dict({"name""mr.wu"'age'18})

#字典基本结构
#dict
info = {
    "k1":"v1",  # 键值对 ————  键:值
    "k2":"v2",
    "k3":"v3"
}

常用操作:

#字典
#dict
info = {
    "k1":"v1",  # 键值对
    "k2":"v2",
    "k3":"v3"
}
#字典的value可以是任何值
#列表不能作为字典的key
#元祖可以作为字典的key
info = {
    "k1":18,
    "k2":True,
    "k3":[
        11,22,33,
        {
            "kk1":'vv1',
            "kk2":'vv2',
            "kk3":(11,22),
        }
    ],
    'k4':(11,22,33,44)

}
print(info)

#### 字典的value可以是任何值
#### 列表、布尔值(0、1)、字典 不能作为字典的key

info = {
    1:'asdf',
    'k1':'asdf',
    True:'123',    #这里的True 和 1重复了,所以显示不出来True
    (11,22):123,
    # [11,22]:123,
    # {11:'asdf'}:123
}


#******************************通过索引方式找到指定元素***********************************

info = {
    "k1":18,
    2:True,
    "k3":[
        11,
        22,
        33,
        {
            "kk1":'vv1',
            "kk2":'vv2',
            "kk3":(11,22),
        }
    ],
    'k4':(11,22,33,44)

}
v = info['k1']
print(v)
v = info[2]
print(v)
v = info["k3"][3]["kk3"][0]
print(v)

#****************************************************************************************




#**************************************支持del删除键值对**********************************

info = {
    "k1":18,
    2:True,
    "k3":[
        11,
        22,
        33,
        {
            "kk1":'vv1',
            "kk2":'vv2',
            "kk3":(11,22),
        }
    ],
    'k4':(11,22,33,44)
}
del info['k1']
del info['k3'][3]['kk1']
print(info)
#****************************************************************************************


#**********************************循环输出key and value**********************************
info = {
    "k1":18,
    2:True,
    "k3":[
        11,
        22,
        33,
        {
            "kk1":'vv1',
            "kk2":'vv2',
            "kk3":(11,22),
        }
    ],
    'k4':(11,22,33,44)
}
#默认循环key
for i in info:
    print(i)
#循环输出key
for i in info.keys():
    print(i)
#循环输出值
for i in info.values():
        print(i)

#循环输出key和值
for k,v in info.items():
    print(k,v)
#**********************fromkeys***********************************
#根据序列,创建字典,并指定统一值fromkeys第一个参数是key,第二个参数是值
v = dict.fromkeys(['k1',123,'999'], [123,345])
print(v)

for k,v in v.items():
    print(k,v)

输出结果:
{'k1': [123, 345], 123: [123, 345], '999': [123, 345]}
k1 [123, 345]
123 [123, 345]
999 [123, 345]


#************************************get***********************************

dic = {
    'k1':'v1'
}
#根据key获取值,key不存在是,可以指定默认返回值(None)
v = dic.get('k2')  # 返回None
v = dic.get('k2', 111) #返回111
v = dic.get('k1') #返回value  v1
print(v)



##**********************************pop删除键值对并获取值********************************
dic = {
    'k2':'v2',
    'k1':'v1',
    'k3':'v3'
}
v = dic.pop('k1')  #返回键对应的值
v = dic.pop('k4', 999)  #找不到对应的key 返回指定的值 999
k,v = dic.popitem()  #删除字典中的最后一个
print(k,v)
print(dic,v)



##******************************************设置值****************************************
#已存在,不设置,获取当前key对应的值
#不存在,设置在字典的最后一个位置,获取当前key对应的值
dic = {
    'k1':'v1',
    'k2':'v2'

}
v = dic.setdefault('k2',434)
print(dic,v)
v = dic.setdefault('k3',434)
print(dic,v)

输出结果:{'k1': 'v1', 'k2': 'v2'} v2
{'k1': 'v1', 'k2': 'v2', 'k3': 434} 434



##***************************************更新键值对***************************************
dic = {
    'k1':'v1',
    'k2':'v2'

}

dic.update({'k1':'4343','k3':'fia'})
print(dic)
dic.update(k1=123,k2=456,k3='re')
print(dic)
输出结果:{'k1': '4343', 'k2': 'v2', 'k3': 'fia'}
{'k1': 123, 'k2': 456, 'k3': 're'}

常用:key()    value()    items()  get update

其他

1、for循环

用户按照顺序循环可迭代对象中的内容,

PS:break、continue

1

2

3

li = [11,22,33,44]

for item in li:

    print item

2、enumrate

为可迭代的对象添加序号

1

2

3

li = [11,22,33]

for k,v in enumerate(li, 1):

    print(k,v)

3、range和xrange

指定范围,生成指定的数字

1

2

3

4

5

6

7

8

print range(110)

# 结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]

print range(1102)

# 结果:[1, 3, 5, 7, 9]

print range(300-2)

# 结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]  

整理

# 一、数字
# int(...)

# 二、字符串
# replace /find /join /strip /strartwidth /split /upper /lower /format
template = 'i am {name} and i am {age} years old'
v = template.format(name='John', age=18)
v = template.format(**{'name':'alex','age':18})
print(v)

# 三、列表
append,extend,insert
#索引、切片、循环

# 四、元祖
#索引、切片、循环  以及元素不能被修改

#五、字典
get/update/keys/values/items
#for,索引

#六、布尔值
#本身就是0 1
#bool(....)
#None "" () [] {} 0  ==》False
  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值