python学习第三天
今天学习内容有:
Python基本数据类型:
Int è 整数,主要用来来进行数学运算
Str è 字符串,可以保存少量数据并进行相应的操作
Bool è 判断真假,True,False
List è 存储大量数据,用【】表示
Tuple è 元组,不可以发生改变用()表示
Dict è 字典,保存键值对,一样可以保存大量数据
Set è 集合,保存大量数据。不可以重复。其实就是不保存value的dict
一、整数
整数可进行的操作: bit_length().计算整数在内存中占用的二进制码长度
print(a.bit_length()) # 返回的是x的二进制长度
# 二进制: 0 1 逢二进一
# 十进制 : 0-9 逢十进一
# 八进制: 0-7 逢8进一
# 十六进制: 0-F 逢16进一
# 所有的内置函数都是直接调用的
# print("哈哈") # 就是打印
# 所有的方法都是对象xxxx.方法()
例:
a = int(input('请输入一个数字:'))
print(a.bit_length())
>>>请输入一个数字:3
>>>2
二、布尔值(bool)
取值只有True,False. bool只没有操作
转换问题:
结论1:x转换成y类型 y(x)
结论2:所有的空都是False。 非空都是True
# False: 0,'',[],{},set(),tuple(),None(真空)
例
bs = False
print(type(bs))
>>><class 'bool'>
bs = False
a = int(bs)
print(a)
print(type(a))
>>>0
>>><class 'int'>
三、字符串
把字符连成串串. 在python中⽤用', ", ''', """引起来的内容被称为字符串串.
1.切片和索引
索引:索引就是下标,切记下表从0开始
字符串中每个字符的位置顺序
索引从0开始. 程序员数数从0开始
s[索引] 获取到字符串s中的索引位置的数据
例
s = '文能提笔安天下,武能上马定乾坤'
print(s[0])
print(s[2])
print(s[5])
print(s[10])
>>>文
>>>提
>>>天
>>>上
切片
s[start: end: step]从start开始到end结束。 但是取不到end. 每step个取一个
s[start: end: step] step如果是正数 从左到右, 如果是负数就是从右到左,默认的方向是从左到右
# 总结:
# s[start: end: step]
# start: 起始位置
# end: 结束为止。取不到
# step: 步长。 每隔xx个取1个。 默认是1 如果step是-1 从右往左取值
例;
s = '文能提笔安天下,武能上马定乾坤'
print(s[0:2])
print(s[-9:-1])
print(s[:4])
print(s[7:])
print(s[0:6:2])
>>>文能
>>>下,武能上马定乾
>>>文能提笔
>>>,武能上马定乾坤
>>>文提安
2.字符串操作
总结:
1.upper() 全部转化成大写字母
2.strip() 去掉左右两段的空白(空格,\n, \t)
3.replace(old, new) 字符串替换
4.split() 切割. 得到的结果是一个列表.
5.startswith() 判断是否以xxx开头
6.find() 查找。如果找到了。 返回索引。如果找不到返回-1
7.len() 内置函数,求字符串长度
切记, 字符串串是不可变的对象, 所以任何操作对原字符串串是不会有任何影响的
.capitalize() è 首字母大写
例
s = "kjhUHIuBNBuibMJo"
s1 = s.capitalize()
print(s1)
>>>Kjhuhiubnbuibmjo
.lower() è 全部转化成小写
例
s = "jJKnjiKloJoJJlldSDHGHS"
s2 = s.lower()
print(s2)
>>>jjknjiklojojjlldsdhghs
.upper() è 全部转化成大写,(需要记忆,当需要忽略大小写,将字符串转换成大写)
s = "jJKnjiKloJoJJlldSDHGHS"
s3 = s.upper()
print(s3)
>>>JJKNJIKLOJOJJLLDSDHGHS
.swapcase() è 大小写互相转换
s = "jJKnjiKloJoJJlldSDHGHS"
s4 = s.swapcase()
print(s4)
>>>JjkNJIkLOjOjjLLDsdhghs
.caseflod() è 转换成小写。和lower的区别:lower()对某些字符支持不够好,而caseflod()对所有字母都有效
s = "jJKnjiKloJoJJlldSDHGHS"
print(s.casefold())
>>>jjknjiklojojjlldsdhghs
.title() è 每个被特殊字符隔开的字母首字母大写(中文也算特殊字符)
s = "jkl_jkli 你好 jkl kjsklmv"
print(s.title())
>>>Jkl_Jkli 你好 Jkl Kjsklmv
.strip() è 默认去掉左右两端的空白,空白包括:空格 换行符\n 制表符\t (也可以去掉左右两端指定的内容) (lstrip(),去掉左边的空格;rstrip(),去掉右边的空格)
s = '\n 你好 \n'
print(s)
print(s.strip())
>>>
>>> 你好
>>>
>>>你好
.replace() è 字符串替换 .replace(old,new,n) n表示替换个数
s = ' old boy euan '
print(s.replace('o','s'))
print(s.replace('o','s',1))
>>>sld bsy euan
>>> sld boy euan
.center(5,’*’) è 拉长成5,并把原字符放中间,其余位置补*
s = 'Euan'
print(s.center(10,'*'))
print(s.center(10,' '))
>>>***Euan***
>>> Euan
.expandttabs() è 更改\t的长度,
s = 'Euan\tlike....'
print(s)
print(s.expandtabs(10))
>>>Euan like....
>>>Euan like....
.split(“ ”,) è 切割 (如果贴着边切。 结果里一定有空字符串)
s = '兰州_惠州_苏州_徐州'
print(s.split('_'))
print(s.split('州'))
>>>['兰州', '惠州', '苏州', '徐州']
>>>['兰', '_惠', '_苏', '_徐', '']
字符串占位
例:
d = "我叫%s, 我来自%s, 我喜欢%s" % ("sylar", "黑龙江", "赛利亚")
s2 = "我叫{}, 我来自{}, 我喜欢{}".format("sylar","黑龙江", "赛利亚" )
s3 = "我叫{2}, 我来自{1}, 我喜欢{0}".format("sylar","黑龙江", "赛利亚" )
s4 = "我叫{name}, 我来自{address}, 我喜欢{hobby}".format(name="sylar", hobby = "赛利亚" ,address="黑龙江")
print(d)
print(s2)
print(s3)
print(s4)
>>>我叫sylar, 我来自黑龙江, 我喜欢赛利亚
>>>我叫sylar, 我来自黑龙江, 我喜欢赛利亚
>>>我叫赛利亚, 我来自黑龙江, 我喜欢sylar
>>>我叫sylar, 我来自黑龙江, 我喜欢赛利亚
.count() è 计数
例
s = "jJKnjiKloJoJJlldSDHGHS"
print(s.count('H'))
>>>2
Find() è 查找。如果找到了。 返回索引。如果找不到返回-1
Index() è 索引。如果找到了 返回索引。 如果找不到。 报错
例
s = "jJKnjiKloJoJJlldSDHGHS"
print(s.find('0'))
print(s.find('o'))
print(s.index('o'))
print(s.index('0'))
>>>-1
>>>8
>>>>8
>>>>ValueError: substring not found
Len() è 求长度,此为内置函数,判断字符串长度
例
num = input('请输入')
b = len(num)
print(b)
>>>请输入a
>>>1
For循环
for 变量 in 可迭代对象:
循环体循环体(break,continue)
else: