Python基础知识(三) 整形,布尔,字符串,
Python基础知识(三)
一丶整型
#二进制转成十进制的方法
# 128 64 32 16 8 4 2
1 1 1 1 1 1 1
例如数字5 : 101
#十进制转成二进制的方法
递归除取余数,从底向上
#十进制:5
5%2==1 👆
2%2==0 👆 >>>>>0101 5的二进制就是:101
2%2==1 👆
1%2==0 👆
#python中获得十进制转成二进制占位个数
a=5 # 二进制->101
print(a.bit_length())# 3位
二丶布尔值类型
#bool 布尔值
#True 真 , False 假
####数值类型转换成布尔值类型 bool(数值)
##只有0是False , 非0是True
print(bool(0)) # False 只有0是False
print(bool(1)) # True 非0是真
####字符串转换成布尔值类型 bool(字符串)
##空的字符串为False ,非空字符串为True
print(bool('')) # 空字符串 False
print(bool("abc")) # 非空字符串 True
####布尔值类型转换成字符串类型 str(布尔值)
print(str(True)) # 转换成字符串 True
print(type(str(False)))# 查看类型<class 'str'>
####布尔类型转换成数值类型 int(布尔值)
print(int(True)) # 转成int 1
print(type(int(False))) #<class 'int'>
三丶字符串
#python中:
字符串是由:单引号 '' , 双引号"", 三引号''''''引起来的内容
#字符串的作用:
存储小量的数据
切片操作
#在计算机中,字符串的下标(索引)从0开始,
#从左向右
name='Tom'
print(name[0]) # T
print(name[1]) # o
print(name[2]) # m
#从右到左
print(name[-1]) # m
print(name[-2]) # o
print(name[-3]) # T
# 字符串的切片 目的: 得到想要的字符串数据
# 格式: a[start: end (顾头不顾尾): step(步长,默认为1)]
a='abcdefg'
print(name[0:10]) #切片结束位置超出,不报错
print(name[100]) #索引下标越界 --->控制报错
print(a[1:4])# bcd 4-1 取3个
# 案例:
s='你好世界'
#取出: 你世
print(s[0:4:2])
#取出: 好界
print(s[1:4:2])
#取出: 界世
print(s[-1:-3:-1])
#起始位置 + 步长
print(a[0:6:2]) #ace
***过程: ab cd ef --->在区间内,2个分一组,取分组的第一个***
*******切片方向理解*******
#切片方向的错误 案例:
print(a[-1:-15:]) # 默认方向+1 从左到右, 取值方向错误~~~~
print(a[-7:-1:-1]) # 方向 -1 从右到左, 取值方向错误~~~~
切片的规律图:
字符串操作
#1.全部大写
name='test'
print(name.upper())
#2.全部小写
name3='TESTA'
print(name3.lower())
#3.判断以哪个字符开头
print(name.startswith('t'))
#4.判断以哪个字符结尾
print(name.endswith('t'))
#5.count 统计字符串的个数
a='aaabbc'
print(a.count('a'))
#6. 字符串的替换
b='abcaim'
print(b.replace('a','q',1)) # old new count 次数:替换的次数
#7. 去除字符串两端的空格或者空白部分
c=' 123 '
print(c.strip()) # strip()默认去除空格,指定要去除的内容
print(c.rstrip()) # strip()右去除,指定要去除的内容
print(c.lstrip()) # strip()左去除,指定要去除的内容
#8. 分隔
d='a,b,c,d,e,f,'
print(d.split(','))# 默认去除空格, 可以指定要分隔的内容.返回数据是列表形式
#9. format字符串格式化
# 按照位置顺序填充
e='a is {} b is {}'
print(e.format('boy','girl'))
# 按照索引位置顺序填充
e='a is {} b is {}'
print(e.format('boy','girl'))
#按照指定参数填充
e='a is {a} b is {b}'
print(e.format(a='boy',b='girl'))
# 10 判断是不是阿拉伯数字
num='231'
print(num.isdigit())
#11. 判断是不是10进制数字
num2='11'
print(num2.isdecimal())
#12. 判断是不是中文和字母
txt='奥迪ald'
print(txt.isalpha())
#13. 判断是不是字母和数字,中文和阿拉伯数字
txt2='大声dka213'
print(txt2.isalnum())
#14 获取长度
s='abcdefg'
print(len(s)) #公用的 工厂函数,所有类型都能使用,除了int 和bool类型
四丶for循环
#for循环语法:
#for关键字 i变量 in 关键字 s可迭代对象
s='abcd'
for i in s:
print(i)
#range(start,end,step) --->范围 , 生成一个序列。
#参数含义:
start:计数的开始位置,默认是从0开始。
end: 计数的结束位置
step:每次跳跃的间距,默认为1
### 例题:
for i in range(5,0,1): # ①如果没有定义for循环中的结束位置会报错, ② 如果定义了结束位置,但是结束位置比起始位置小. 则循环取到值.并不会出错
print(i) # 取不到值
#pass 占位符 和 ...
在for循环体内什么也不执行
***区别:python2 和 python3中***
python3: range()返回的是一个可迭代的对象,不是列表类型
x=range(3)
print(type(x)) # ----><class 'range'>
print(x) #---->range(0,3)
**标注:Python3中的range和生成器是不一样的.
python2: range()函数返回的是列表。
x=range(3)
print(type(x)) # --->[0,1,2] 列表