码迷,mamicode.com
首页 > 编程语言 > 详细

python 基础数据类型 一

时间:2019-06-11 22:11:05      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:可迭代对象   机器   replace   十进制   format   abs   进制   pass   sda   

基础数据类型 一

整数:在python3中用关键字int来表示

在32位机器上int的范围是: -2**31 2**31-1,即-2147483648~2147483647

在64位机器上int的范围是: -2**63~2**63-1,即-9223372036854775808~9223372036854775807

在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型.

在python3中不存在long类型 整数可以进行的操作+ - * / % // **

二进制转换为十进制:要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右

通用公式为:

abcd.efg(2)=d*2^0+c*2^1+b*2^2+a*2^3+e*2^-1+f*2^-2+g*2^-3(10)

例1101.01转换为十进制
1101.01(2)=1*2^0+0*2^1+1*2^2+1*2^3 +0*2^-1+1*2^-2=1+0+4+8+0+0.25=13.25(10)

十进制转换为二进制:十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

18/2=9 余 0
9/2=4 余 1
4/2=2 余0
2/2=1 余0
1/2=0 余1
18用二进制表示为 10010

求十进制数转换成二进制时所占用的位数可用: print(num.bit_length())

num = 18
print(num.bit_length())

布尔值

用于条件使用 True(真) False(假)

数字转换为布尔值:

print(bool(-10))   #结果 True   规律:非0即True

字符串转换为布尔值:

print(bool(''))    #结果为 False 规律:非空即True(字符串里全空,空格也没有)

布尔值转换为字符串:

print(str(True))    #True type 为字符串

布尔值转换为数字:

print(int(True))    #结果为1    False转换结果为0

字符串

用于存储数据 但量比较小

‘ ‘

" "

‘‘‘ ‘‘‘

""" """

里边都是字符串

字符串的索引和切片

name = "张三,Zain01,imm_ky"
#索引   从左往右数 01234...  相当于从0开始从左往右给元素编号,也可从右往左:-1-2-3-4.. 查找时超出范围会错. 
#字符串,列表,元组  --  都是有索引(下标)
print(name[1])
print(name[1:10:3])     # 切片:[起始位置:终止位置:步长]  顾头不顾尾 查找的时候超出范围没事
#步长:正负决定查找的方向 大小决定查找的间隔 默认时1 默认方向为从左到右 如-1是从左至右
#先定义一个范围  再确定方向
print(name[::-1]   #倒序输出
print(name[:4])    #开始到3号索引即第四个元素
 #[a:b:c] 前两位是去一个范围 a b  可正可负  c的符号决定了输出方向   

字符串的常用处理方法

1.全部大写 upper

name = "absjdfg"
print(name.upper())

全部小写 lower

name = "SADFWSSS"
print(name.lower())

2.查看开头 startswith

name = "alex"
print(name.startswith('a'))  #结果为 True

查看结尾 endswith

name = "alex"
print(name.endswith('a'))   #结果为False

3.count 统计某元素或内容出现次数

name = "sdsdsdsdaadwfqs"
print(name.count('sd'))   

4.替换 replace

name = "sdsdsdsdaadwfqs"
print(name.replace('d','A',5))  #括号内前面为要被替换的内容,中间为新内容,数字为替换次数,不填默认全换

5.除去头尾两边的空格 strip

name = '  imm_ky/   '
print(name.strip())         #默认去掉空格和换行符,可以写自己想换的内容.

6.分割 split 分割后得到一个列表

name = "a l e x"
print(name.split())         #默认以空格分隔,也可自定义分割

7.字符串格式化之 format

name = 'alex{}wusir{}'
name1 = name.format('去玩了','在上班')        #按顺序对应填充
name = 'alex{0}wusir{1}'
name1 = name.format('去玩了','在上班')        #按索引位置填充
name = 'alex{a}wusir{b}'
name1 = name.format(a='去玩了',b='在上班')      #指名填充

8.is系列 判断

name = '2343②'
print(name.isdigit())   # isdigit   判断是不是阿拉伯数字
name = '385'
print(name.isdecimal())   # isdicimal 判断是不是十进制 一般用它判断是不是数字
name = 'inmm汉字'
print(name.isalpha())   # isalpha 判断是不是由字母和汉字组成
name = 'inmm汉字985'
print(name.isalnum())   #isalnum 判断是不是右字母、数字、汉字组成.

join的用法 (得到字符串)

str.join() str为要插入的符号,括号内为操作对象,列表,元组,字典都可以 操作结果为以插入的str隔开的字符串

li = ['a','b','c','d']
s = ':'.join(li)   # 用冒号分开各元素
>>> 'a:b:c:d'   #得到结果为一个字符串

len() 函数

可以用于统计字符串元素个数

s = '今晚打老虎'
print(len(s))    #  结果为5

for循环

for i in s:
    print(i)       

for 关键字, i变量 ,s 可迭代对象(除int.bool 外都是)

s = 'alex'
for i in s:
    pass # 过  占位符
    ``` #同pass
print(i)             
#注意和上边的区别,最终结果为'x',因为对于for循环会根据索引给i赋值为s内的元素,直到最后一个变量(正常完成循环情况下),因此最终print(i)会输出最后一个元素.
                    

range 取一个范围数

python3打印是它自己本身

python2打印是列表

for i in  range(1,10,2): # (起始位置,终止位置,步长)(顾头不顾尾)
    #range(10) 指定了终止位置,起始位置默认是0
    print(i)

python 基础数据类型 一

标签:可迭代对象   机器   replace   十进制   format   abs   进制   pass   sda   

原文地址:https://www.cnblogs.com/banshannongchang/p/11006368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!