Python基础Day3
一、基础数据类型 总览
整型 int:用于计算,计数,运算等。
字符串 str:用于少量数据的从存储,便于操作。例如:个人信息,公司密钥等
布尔值 bool:True , False 两种状态,机器反馈给用户的对错信息
列表 list:[ ] 用于存储大量数据,能存储各种数据类型
元组 tuple:( ) 只读列表,不能修改
字典 dict:{ 键 :值 } 存储大量关联型数据
集合 set:{ } 关系测试,多个集合之间的测试
二、int 整型
bin() #把十进制数转换为二进制
bit.length() #获取十进制数的最少二进制位数
a = 99
print(bin(a)) # 十进制数a转换为了二进制数
print(a.bit_length()) # 获取十进制数a的最少二进制位数
#结果
0b1100011
7
三、数据类型之间的转换
int --- > str (整型转换为字符串)
格式:str(int)
b = str(1)
print(b,type(b))
#结果
1 <class 'str'>
str --- > int (字符串转换为整型)
格式:int(str) # 默认会将字符串的所有空格去除
s1 = "123"
b1 = int(s1)
print(b1,type(b1))
# 结果
123 <class 'int'>
s1 = " 3 "
print(int(s1)) # str转换为int,默认会将字符串的空格去除
# 结果
3
bool --- > int (布尔值转换为整型)
格式:int(bool)
True == 1
False == 0
c1 = int(True)
print(c1,type(c1))
c2 = int(False)
print(c2,type(c2))
# 结果
1 <class 'int'>
0 <class 'int'>
int --- > bool (整型转换为布尔值)
格式: bool(int)
非0 == True
0 == False
d1 = bool(3)
print(d1,type(d1))
d2 = bool(0)
print(d2,type(d2))
# 结果
True <class 'bool'>
False <class 'bool'>
str --- > bool (字符串转换为布尔值)
格式:
bool(str)
空字符串 == False
非空字符串 == True
s1 = ""
e1 = bool(s1)
print(e1,type(e1))
s2 = 'abc'
e2 = bool(s2)
print(e2,type(e2))
# 结果
False <class 'bool'>
True <class 'bool'>
bool ---> str (布尔值转换为字符串) 转换无意义
格式:
str(bool)
f1 = str(True)
f2 = str(False)
print(f1,type(f1))
print(f2,type(f2))
# 结果
True <class 'str'>
False <class 'str'>
四、str 字符串
字符串是以字符排序组成的,有序的。
第一个字符的索引是0,最后一位索引是-1
对字符串操作形成的都是一个新的字符串,与原来字符串无关
① 按索引取值,取出来的都是一个字符形成新的字符串
s1 = 'python3.6'
print(s1[0])
print(s1[3])
print(s1[-1])
# 结果
p
h
6
②按切片取值(顾头不顾尾)
s2 = 'My learn python3.6'
print(s2[0:8])
print(s2[:8])
print(s2[8:])
print(s2[-9:])
print(s2[-9:-3])
# 结果
My learn
My learn
python3.6
python3.6
python
③按切片+步长 (每次的跨度必须一样)
如果想倒序取值,加反向步长(负号)
s3 = 'My name is XiaoMing.'
print(s3[:7:2])
print(s3[-1:-10:-1]) # 倒序取值,加反向步长
# 结果
M ae
.gniMoaiX
五、字符串的常用方法
lower() # 全部字母变成小写
upper() # 全部字母变成大写
用途:验证码的验证
string1 = 'goodBoy'
print(string1.lower())
print(string1.upper())
# 结果
goodboy
GOODBOY
startswith(字符串) # 判断字符串是否以XXX开头,返回bool值
endswith(字符串) # 判断字符串是否以XXX结尾,返回bool值
string1 = 'good Boy'
print(string1.startswith('a'))
print(string1.endswith('Y'))
# 结果
False
False
find(元素,开始的索引,结束的索引) # 通过元素找到第一个该元素所在字符串的索引,返回的是int类型,找不到返回-1
rfind(元素,开始的索引,结束的索引) # 从字符串的尾部开始查找该元素的第一个索引,返回的是int类型,找不到返回-1
开始的索引和结束的索引可不填
str1 = 'Welcome to Hongkong'
print(str1.find('o')) # 通过元素找到第一个该元素所在字符串的索引,返回int类型
print(str1.find('o',8,18))
print(str1.find('z')) # 找不到该元素的索引返回-1
print(str1.rfind('o'))
# 结果
4
9
-1
16
index(元素,开始的索引,结束的索引) # 通过元素找到第一个该元素所在字符串的索引,返回的是int类型,找不到则报错
rindex (元素,开始的索引,结束的索引) # 找从字符串的尾部开始查找该元素的第一个索引,返回的是int类型,找不到则报错
# 通过元素找到第一个该元素所在字符串的索引,返回的是int类型,找不到则报错
str2 = 'Welcome to Shenzhen'
print(str2.index('o')) # 通过元素找到第一个该元素所在字符串的索引,返回int类型
print(str2.index('o',8,15))
print(str2.rindex('n'))
print(str2.index('a')) # 找不到该元素的索引则报错
# 结果
Traceback (most recent call last):
4
9
18
File "D:/Day3/day3review.py", line 118, in <module>
print(str2.index('a')) # 找不到该元素的索引则报错
ValueError: substring not found
strip() # 去除字符串前后的自定义字符,默认是去除空格(包括制表符\t、换行符\n)
lstrip() # 去除字符串首部的自定义字符,不填是默认空格
rstrip() # 去除字符串尾部的自定义字符,不填是默认空格
用途:一般用在input()方法后面
str3 = '\tHello World \n'
print(str3)
print(str3.strip())
print(str3.lstrip())
print(str3.rstrip())
# 结果
Hello World
Hello World
Hello World
Hello World
split(字符,最大次数) # 将字符串分割成列表(str ---> list),默认是按空格分割
str1 = 'Welcome to Beijing'
print(str1.split())
print(str1.split('o',1))
print(str1.split('o'))
print(str1.rsplit('i',1))
# 结果
['Welcome', 'to', 'Beijing']
['Welc', 'me to Beijing']
['Welc', 'me t', ' Beijing']
['Welcome to Beij', 'ng']
如果字符串首部有空格,默认是不分割;
s1 = ' happy day'
print(s1.split())
print(s1.split(' '))
# 结果
['happy', 'day']
['', 'happy', 'day']
join 以自定制连接符,将可迭代对象的元素连接起来
列表转换为str的方式
str1 = 'London'
print('-'.join(str1))
# 结果
L-o-n-d-o-n
replace(旧字符串,新字符串,替换次数) # 将字符串替换为另外一个字符串,可设置替换的次数
str1 = "I'm going to Beijing today"
print(str1.replace('Beijing','Shanghai')) # 将北京替换为上海
# 结果
I'm going to Shanghai today
其他方法:
str1 = 'guang ZhOu'
print(str1.capitalize()) # 将字符串的首字母大写,后面的字母全部小写
print(str1.center(60,'-')) # 将字符串居中,前后填充是自定义的字符
print(str1.swapcase()) # 将字母的大小写翻转
print(str1.title()) # 将非字母隔开的每个部分的首字母大写
print(str1.count('u')) # 统计元素在字符串的个数
print(len(str1)) # 获取字符串的长度
# 结果
Guang zhou
-------------------------guang ZhOu-------------------------
GUANG zHoU
Guang Zhou
2
10
字符串的 is判断:
str1 = ' Hello Boy hahahaha123haha789haha'
print(str1.isalnum()) # 判断字符串是否由字母或者数字组成
print(str1.isalnum()) # 判断字符串是否全部由字母组成
print(str1.isdigit()) # 判断字符串是否全部由数字组成
# 结果
False
False
False
六、格式化输出 format
{} 不能包含空格
方式一:
str1 = "我叫{},今年{}岁,已经工作了{}年".format('王大锤',30,5)
print(str1)
# 结果
我叫王大锤,今年30岁,已经工作了5年
方式二:(好处:可以重复使用)
str2 = '我叫{1},今年{2}岁,来自{0},我一直在{0}工作'.format('深圳','王大锤',30)
print(str2)
# 结果
我叫王大锤,今年30岁,来自深圳,我一直在深圳工作
方式三:
str3 = '我是{name},来自{place},是一名{job}'.format(job='开发工程师',name='王大锤',place='深圳')
print(str3)
# 结果
我是王大锤,来自深圳,是一名开发工程师
七、for 循环
格式:
for 变量 in iterable(可迭代对象) :
循环体
可迭代对象: 由多个元素组成,可被遍历
循环的次数是和可迭代对象的元素个数有关
exit('提示语') # 终止程序并打印提示语