zoukankan      html  css  js  c++  java
  • python基础-基本数据类型(int, bool, str)

    一.python基本数据类型

    • int ==> 整数. 主要用来进行数学运算
    • str ==> 字符串, 可以保存少量数据并进行相应的操作
    • bool==>判断真假, True, False
    • list==> 存储大量数据. 用[ ]表 示
    • tuple=> 元组, 不可以发生改变 用( )表 示
    • dict==> 字典, 保存键值对,  一样可以保存大量数据
    • set==> 集合, 保存大量数据. 不可以重复. 其实就是不保存value的dict

     二. 整数(int)

    在python3中所有的整数都是int类型,但在python2中如果数据量比较大,会使用long类型.
    
    在python3中不存在long类型
    
    整数可以进行的操作: bit_length(). 计算整数在内存中占用的二进制码的长度

    三. 布尔值(bool)

    取值只有True, False. bool值没有操作.
    
    转换问题:
    
    str => int          int(str)
    
    int => str          str(int)
    
    int => bool      bool(int). 0是False 非0是True
    
    bool=>int        int(bool)     True是1, False是0
     
    str => bool      bool(str) 空字符串串是False, 不空是True
    
    bool => str      str(bool) 把bool值转换成相应的""

     

    四. 字符串(str)

    把字符连成串. 在python中 用', ", ''', """引起来的内容被称为字符串.

    4.1   切片和索引

    • 索引. 索引就是下标. 切记, 下标从0开始

      

    •   切片, 我们可以使 用下标来截取部分字符串的内容  
        •   语法: str[start: end]

            规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end

     

     跳着截取

    步 长: 如果是整数, 则从左往右取. 如果是负数. 则从右往左取. 默认是1切片语法:

    切片语法: 

      str[start:end:step] start: 起始位置

      end: 结束位置

      step:步 长

    4.2 字符串串的相关操作 方法

    切记, 字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的

    1.  大小写转来转去

     

    2.切来切去

     

     

     

    3.格式化输出

     

    4.  查找

    5. 条件判断

     6. 计算字符串的长度

    注意: len()是python的内置函数. 所以访问 方式也不 一样. 你就记着len()和print() 一样就行了

    7.  迭代

    我们可以使 用for循环来遍历(获取)字符串中的每 一个字符语法:

      for 变量  in  可迭代对象:

        pass

      可迭代对象: 可以 一个 ,一个往外取值的对象

    # 练习.  用算法判断某 一个字符串串是否是 小数 s17 = "-123.12"

    s17 = s17.replace("-", "") # 替换掉负号 if s17.isdigit():

    print("是整数") else:

    if s17.count(".") == 1 and not s17.startswith(".") and not s17.endswith("."):

    print("是 小数") else:

    print("不不是 小数")

    6.  计算字符串串的 长度

    s18 = "我是你的眼, 我也是a" ret = len(s18) # 计算字符串串的 长度 print(ret)

    注意: len()是python的内置函数. 所以访问 方式也不 一样. 你就记着len()和print() 一样就 行行

    了了

    7.  迭代

    我们可以使 用for循环来便便利利(获取)字符串串中的每 一个字符语法:

    for 变量量 in 可迭代对象:

    pass

    可迭代对象: 可以 一个 一个往外取值的对象

    s19 = " 大家好, 我是VUE, 前端的 小朋友们. 你们好么?"

    #  用while循环 index = 0

    while index < len(s19): print(s19[index]) # 利利 用索引切 片来完成字符的查找 index = index + 1

    # for循环, 把s19中的每 一个字符拿出来赋值给前 面的c for c in s19:

    print(c)

    '''

    in有两种 用法:

    1. 在for中. 是把每 一个元素获取到赋值给前 面的变量量.
    1. 不不在for中. 判断xxx是否出现在str中.

    '''

    print('VUE' in s19)

    # 练习, 计算在字符串串"I am sylar, I'm 14 years old, I have 2 dogs!" s20 = "I am sylar, I'm 14 years old, I have 2 dogs!"

    count = 0

    for c in s20:

    if c.isdigit():

    count = count + 1 print(count)

    # a = 3
    # print(a.bit_length())
    #
    # #字符串转成数字
    # a = '123'
    # i = int(a)
    # print(i)
    # s = str(i)
    # print(type(s))

    # b = True
    # c = int(b)
    # print(c)

    # int 转换为Bool #零 FLase 非零 True

    # a = 0
    # b = bool(a)
    # print(b)

    # while 1: #1的效率比True效率高一点
    # print('alex是个小伙子')

    # s = '你好啊' #这种为真
    # if s:
    # print('嘿嘿')
    # else:
    # print('呵呵')
    #
    # s = '' #''空字符串表示Flase,非空字符串表示:True
    # if s:
    # print('嘿嘿')
    # else:
    # print('呵呵')
    #
    # #空的东西都是Flase,非空都是True
    #
    # m = None #空 连空气都不如。真空 也是Flase
    # if m:
    # print('a')
    # else:
    # print('b')

    # 字符串python独有的切片和索引
    # s = '老男孩天下无敌'
    # print(s[3])
    # print(s[-1])
    # print(s[-2])
    # print(s[-3])

    #通过索引获取的内容还是字符串

    #切片可以对字符串进行截取
    #语法 S[起始位置:结束位置:步长]
    #特点:顾头不顾腚

    # s = '大头哥哥你好啊wind'
    # a = s[2:7]
    # print(a)
    # s2 = (s[0:3] + s[4:8])
    # print(s2)
    # s3 =s[1:] #默认到结尾
    # print(s3)
    # s4 =s[:10] #从头开始
    # print(s4)
    # s5 =s[:] #从头到尾切出来
    # print(s5)
    # s6 =s[-1:-3] #深坑
    # print(s6)
    # s7 = s[-2:]#从-2切到结尾 默认从左往右切
    # print(s7)

    #步长
    #语法 S[起始位置:结束位置:步长] ;步长可以控制方向如果加 - 号 从右往左走
    # s = "我是梅西,我很慌"
    # s1 = s[1:5:2] # 从1开始, 到5结束, 每2个取1个
    # print(s1)

    # s2 = s[::3]
    # print(s2)
    # s3 = s[6:2:-2] # - 表示反着来. 每两个取1个
    # print(s3)


    # s = "这个标点符号很蛋疼"
    # s1 = s[7::-2]
    # print(s1)
    #
    # s2 = s[-1:-6:-2]
    # print(s2)


    # s = "alex and wusir and taibai"
    # s1 = s.capitalize() # 首字母大写
    # print(s) # 原字符串不变
    # print(s1)

    # s = "Alex is not a Good Man. "
    #
    # print(s.upper())#upper 全部转换为大写
    # print(s.lower())#lower全部转换为小写

    #在程序需要判断不区分大小写的时候. 肯定能用上,例如注册时候验证码

    # while True:
    # content = input("请喷:")
    # if content.upper() == 'Q':
    # break
    # print("你喷了:", content)

    # s = "taiBai HenBai feicahngBai"
    # print(s.swapcase()) # 大小写转换
    #
    # s = "al麻花藤ex and wu sir sir se"
    # print(s.title())

    # s = "麻花藤"
    # print(s.center(8)) #center函数主要用于居中
    # print(s.center(8, "*")) #居中

    # username = input("用户名:").strip() # 去掉空格.
    # password = input("密码:").strip() # 去掉空格
    # if username == 'alex' and password == '123':
    # print("登录成功")
    # else:
    # print("登录失败")

    # s = "*******呵a呵呵呵****************"
    # print(s.strip("*")) # strip去掉的是左右两端的内容. 中间的不管


    # s = "alex wusir alex sb taibai"
    # s1 = s.replace("alex", "晓雪") # 原字符串不变
    # print(s1)
    # # 去掉上述字符串中的所有空格
    # s2 = s.replace(" ", "")
    # print(s2)

    #replace也可以替换1个、2个等等
    # s3 = s.replace("alex", "sb", 1)
    # print(s3)


    #split切割,切完的东西是列表
    # s = "alex_wuse_taibai_bubai"
    # lst = s.split("_taibai_") # 刀是_ 切完的东西是列表. 列表装的是字符串
    # print(lst)

    # s = "alex_wuse_taibai_bubai"
    # lst = s.split("_taibai_bubai") # 刀是贴边切会有空字符
    # print(lst)

    # s = "alex_wuse_taibai_bubai"
    # lst = s.split("alex_wuse_taibai_bubai") # 刀是贴边切会有空字符
    # print(lst)


    # s = "我叫{}, 我今年{}岁了, 我喜欢{}".format("sylar", 18, "周杰伦的老婆")
    # print(s)

    # format可以指定位置!
    # s = "我叫{1}, 我今年{0}岁了, 我喜欢{2}".format("sylar", 18, "周杰伦的老婆")
    # print(s)

    # s = "我叫{name}, 我今年{age}岁了, 我喜欢{mingxing}".format(name="sylar", mingxing="汪峰的老婆", age=18)
    # print(s)

    # 你喜欢用哪个就用哪个


    s = "汪峰的老婆不爱汪峰"

    # print(s.startswith("汪峰")) # 判断字符串是否以xxx开头,是True 不是Flase
    # print(s.endswith("爱妃")) # 判断字符串是否以xxx结尾,是True 不是Flase
    # print(s.count("国际章")) # 计算xxx在字符串中出现的次数
    #print(s.find("老婆")) 计算xxx字符串在原字符串中出现的位置, 如果没出现返回 -1
    # print(s.find('汪峰'))
    # print(s.find("汪峰", 3)) # 切片式找法,从索引3开始找
    # print(s.find("国际章")) #返回 -1
    # print(s.index("国际章")) # 索引, index中的内容如果不存在. 直接报错
    #因为index找不到会报错,所以我们用find就行


    # s = "abc123"
    # print(s.isdigit()) # 判断字符串是否由数字组成
    # print(s.isalpha()) # 是否由字母组成
    # print(s.isalnum()) # 是否由字母和数字组成

    # s = "二千136万萬"
    # print(s.isnumeric()) # 数字

    # s = "你今天喝酒了么"
    # i = len(s) # print() input() len() python的内置函数
    # print(i)
    #
    # i = s.__len__() # 也可以求长度 len()函数执行的时候实际执行的就是它
    # print(i)

    # 把字符串从头到尾进行遍历
    # s = "晓雪老师.你好漂亮"
    # print(len(s)) # 长度是:8 索引到7
    # 1. 使用while循环来进行遍历
    # count = 0
    # while count < s.__len__():
    # print(s[count],end= '')
    # count = count + 1

    # 2. 用for循环来遍历字符串
    # 优势:简单
    # 劣势:没有索引
    # for c in s: # 把s中的每一个字符交给前面的c 循环
    # print(c)

    # 语法:
    # for bianliang in 可迭代对象:
    # 循环体



    '''作业
    # 1.请输出 name 变量对应的值中 "e" 所在索引位置?
    name = "aleX leNb"

    count = 0
    while count < len(name):
    if name[count] == 'e':
    print(count)
    count += 1

    '''
    s ='asdsf'

    # 3、使用for循环对s ='asdsf'进行循环、分别打印字符串中的每个元素
    # for c in s:
    # print(c)

    # 4、使用for循环对s ='asdsf'进行循环、每次打印的内容都是'asdsf'
    # for c in s:
    # print(s)

    #5、使用for循环对s ='asdsf'进行循环、每次打印的内容加上'sb'
    # for c in s:
    # print(c +'sb')

    #6、使用for循环对s='321'进行循环、打印内容依次是:"倒计时3秒"、"倒计时2秒"、"倒计时1秒"、出发
    # s = '321'
    # for i in s:
    # print('倒计时%s秒' %i)
    # else:
    # print('出发')

    #7、实现一个整数加法计算器(两个数相加)
    #如 content =input(请输入内容:)用户输入:5+9然后进行分割再进行计算
    # content =input('请输入内容:')
    # list = content.split('+')
    # s1 =list[0]
    # s2 =list[1]
    # a1 = int(s1)
    # a2 = int(s2)
    # print(a1+a2)

    #8、实现一个整数加法计算器(多个数相加) --升级题
    #如 content =input(请输入内容:)用户输入:5+9+6+12+13然后进行分割再进行计算



    #9 计算输入的内容是几位整数(已个位为单位)# content = input("请输⼊内容:") # 如fhdau234slfh98769fjdba

    # content = input("请输⼊内容:") # 如fhdau234slfh98769fjdba
    # count = 0
    # for c in content:
    # if c.isdigit():
    # count = count + 1
    # print(count)
    #

    # 11、1 - 2 + 3 - 4 ... + 99 去掉88
    # count = 1
    # sum = 0
    # while count < 100:
    # if count == 88:
    # count = count + 1
    # continue
    # if count %2 == 0:# 偶数
    # sum = sum - count
    # else:
    # sum = sum + count
    # count = count + 1
    # print(sum)

    # 12 、判断一句话是否是回文.回文:正着念反着念是一样的.例如"明天到操场操到天明
    ss = "明天到操场操到天明"
    s1 = ss[::-1]
    if ss == s1:
    print("回文")
    else:
    print("不是回文")

    # 13 输入一个字符串,要求判断这个字符串中大写字母、小写字母、数字,其他
    # 字符共出现了多少次,并输出出来
    content = input("请输入一个字符串:")
    digit_num = 0
    upper_c_num = 0
    lower_c_num = 0
    other = 0
    #
    for c in content:
    if c.isdigit():
    digit_num += 1
    elif c.isupper():
    upper_c_num += 1
    elif c.islower():
    lower_c_num += 1
    else:
    other += 1

    print(digit_num)
    print(upper_c_num)
    print(lower_c_num)
    print(other)

    #14、制作趣味模板程序需求:等待用户输入名字、地点、爱好、根据用户的名字和爱好
    #进行任意现实如:敬爱可亲的XXX,最喜欢在XXX地方干XXX

    # name = input("请输入你的名字:")
    # address = input("请输入你的地点:")
    # hobby = input("请输入你的爱好:")
    # print("敬爱可亲的{name}, 喜欢在{address}干{hobby}".format(name=name, address=address, hobby=hobby))# name = input("请输入你的名字:")
    # # address = input("请输入你的地点:")
    # # hobby = input("请输入你的爱好:")
    # # print("敬爱可亲的{name}, 喜欢在{address}干{hobby}".format(name=name, address=address, hobby=hobby))# name = input("请输入你的名字:")
    # # address = input("请输入你的地点:")
    # # hobby = input("请输入你的爱好:")
    # # print("敬爱可亲的{name}, 喜欢在{address}干{hobby}".format(name=name, address=address, hobby=hobby))








    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    docker工具链概述
    Microsoft.AspNetCore.Authentication.Cookies从入门到精通 (二)
    Microsoft.AspNetCore.Authentication.Cookies从入门到精通 (一)
    阿贝云免费虚拟主机使用体验
    Topshelf 秒建 Windows 服务
    一次兼职项目开发的经历
    修改了my.ini没有效果,MySql的字符集还是没有变成utf8——mysql中文乱码
    【转载】Fiddler工具使用介绍(一)
    C#中$的用法
    系统开发常用模块
  • 原文地址:https://www.cnblogs.com/TodayWind/p/11826820.html
Copyright © 2011-2022 走看看