day03---基本数据类型
Posted lianghui-lianghui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day03---基本数据类型相关的知识,希望对你有一定的参考价值。
基本数据类型简介
1, int 整数
2, str 字符串:引号引起的事字符串 ‘,",‘‘‘
字符串一本不存储大量数据,不好操作
3,bool 布尔值 True False
4, list [] 列表
5, tuple ()元组,只读列表
6,dict {} 查找比较快 一次存两个数据,成对存储 key:value
7, set {} 一次存一个,不能重复,只存key
一, int
bit_length() :计算整数在内存中占用的二进制长度,求的有效长度
a = 10 print(a.bit_length()) # 4 a = 100 print(a.bit_length()) # 7 a = 10000 print(a.bit_length()) # 14
二, bool
数字转换成bool:如果数字是0,则是fales,如果是非0 ,则是true
while 1 ===>while True while 1 的效率更高,计算机底层识别010101
a = 10 print(bool(a)) #True a = 0 print(bool(a)) #False
bool转换成数字:int(bool)
int(True)===> 1
int(False)===> 0
a = True print(int(a)) #1 a = False print(int(a)) #0
字符串转换为bool: bool(str)
空字符串是False,非空是True
a = "梁慧" print(bool(a)) #True a = "000" print(bool(a)) #True a = "" print(bool(a)) #False a = " " print(bool(a)) #True
例子:
# 向系统中录入员工信息, 不停的录入 , 输入回车退出 while True: name = input("请输入员工信息:") if not name: break else: print(name)
三, str
字符:单个文字符号
字符串:把字符连成串
字符串是不可变的
1.索引: 字符串中的第几个字符
语法: 字符串[索引] 规定使用中括号 索引下标正向从0 开始,反向从-1开始
a = "我觉得我什么都不会" print(a[0]) # 我 print(a[7]) # 不
2.切片: 顾头不顾尾,前面的可以取到,后面的取不到
给两个参数,默认是从左往右切
步长:可以跳着切
a = "我觉得我什么都不会" print(a[0:2]) #我觉 print(a[:]) #我觉得我什么都不会 print(a[0:]) #我觉得我什么都不会 print(a[0:7:2]) #我得什都 print(a[0:7:-2]) print(a[5:99]) # 如果右边的值. 超过了字符串长度. 切到最后 print(a[-5:]) # 啥也不写. 到最后
3.字符串的常用操作方法
(1)大小写转换
.capitalize() :首字母大写,开头如果是中文,不变
.title :每个单词首字母大写,特殊字符,中文在这里算特殊字符
.upper() 全部转换成大写字母
.lower() 全部转换成小写
.swapcase() 大小写转换
a = "liang Hui ai xue xi" print(a.capitalize()) #Liang hui ai xue xi 先把所有字母变成小写,然后把首字母大写 print(a.title()) #Liang Hui Ai Xue Xi print(a.upper()) #LIANG HUI AI XUE XI print(a.lower()) #liang hui ai xue xi print(a.swapcase()) #LIANG hUI AI XUE XI
(2)切换
.center(**,"**") 拉长成**个字符,由**填充
a = "liang" print(a.center(10)) print(a.center(10,"*")) #**liang***
.strip() 去掉左右两边的空格 ****
.lstrip() 去掉左边的空格 ****
.rstrip() 去掉右边的空格 ****
a = " liang " print(a.strip()) print(a.lstrip()) print(a.rstrip())
.replace(**,"**") 把**替换为**
a = "梁慧爱学习" print(a.replace("学习","吃")) #梁慧爱吃
.split("***") 切割,字符串切割,切割的结果是列表,,在开头和结尾如果出现了你的刀,那么一定会出现空字符串
1. 如果***跟原字符串一样,得到的是两个空字符串
如果***不存在于原字符串内,得到的事原字符串
2. .split("***",数字) 切几次
a = "梁慧_哈哈_呵呵_咯咯" print(a.split("_")) #[‘梁慧‘, ‘哈哈‘, ‘呵呵‘, ‘咯咯‘] print(a.split(",")) #[‘梁慧_哈哈_呵呵_咯咯‘] print(a.split("_",2)) #[‘梁慧‘, ‘哈哈‘, ‘呵呵_咯咯‘]
(3)查找
.startswith() 以什么开头
.endswith() 以什么结尾
.count() 查找,如果找到,则输出出现的次数,如果没找到返回0
.find() 如果要查找的内容不存在,返回-1,如果存在返回索引,可以切片查
.index() 求索引,如果找不到内容,报错,如果找到,返回索引,可以切片
a = "12345" print(a.startswith("1")) #True print(a.endswith("2")) #False print(a.count("3")) #1 print(a.find("8")) #-1 print(a.index("8")) #报错啦
(4)条件判断
.isalnum()是否是字母和数字组成
.isdigit()是否是数字组成
.isnumeric()是否是数字组成(也可以识别中文数字)
.isalpha()是否是字母组成
a = "12345dsab" print(a.isalnum()) #True print(a.isdigit()) #False print(a.isnumeric()) #False print(a.isalpha()) #False
(5)计算字符串的长度
len()
注意: len()是python的内置函数. 所以访问方式也不一样. 你就记着len()和print()一样就行了
a = "12345dsab" print(len(a)) #9
(6) 格式化输出
s12 = "我叫%s, 今年%d岁了, 我喜欢%s" % (‘sylar‘, 18, ‘周杰伦‘) # 之前的写法 print(s12) s12 = "我叫{}, 今年{}岁了, 我喜欢{}".format("周杰伦", 28, "周润发") # 按位置格式化 print(s12) s12 = "我叫{0}, 今年{2}岁了, 我喜欢{1}".format("周杰伦", "周润发", 28) # 指定位置 print(s12) s12 = "我叫{name}, 今年{age}岁了, 我喜欢{singer}".format(name="周杰伦", singer="周润发", age=28) # 指定关键字 print(s12)
四,迭代
for循环:
for 变量 in 可迭代对象:
循环体
# 练习, 计算在字符串"I am sylar, I‘m 14 years old, I have 2 dogs!"中数字循环次数 a = "I am sylar, I‘m 14 years old, I have 2 dogs!" count = 0 for number in a: if number.isdigit(): count = count + 1 print(count)
以上是关于day03---基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章
java小白训练营day03-数据结构:基本类型+包装类型+数组+对象