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.切片:  顾头不顾尾,前面的可以取到,后面的取不到
      给两个参数,默认是从左往右切
  步长:可以跳着切

扫描二维码关注公众号,回复: 1347425 查看本文章
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)


         

猜你喜欢

转载自www.cnblogs.com/lianghui-lianghui/p/9123146.html