day3 数据类型、for循环

day3 数据类型、for循环

  1. 基础数据类型总览

    • 10231 21312 123 int 可以±*/等等
    • ‘今天吃了没’ str 存储少量的数据, + * 切片
    • True False bool 判断真假
    • [12,True,‘alex’,[1,2,3]] list(列表) 存储大量的数据,可以增删改查
    • (12,True,‘alex’,[1,2,3]) tuple (元组)存储大量的数据,不可以改变里面的元素
    • {‘name‘:‘太白金星’} dict(字典) 存储大量的关联型的数据,查询速度非常快
    • set (集合) 交集,并集,差集
  2. int

    • 主要用于计算 加减乘除

    • 还可以用于不同的进制之间的转换。10进制,2进制

      • 二进制转换成十进制

        0001 1010 ---------16+8+2=26

  3. bool

    非空即True

    • 例子
    s = input ('请输入内容')
    if s :
        print('有内容')
    else :
        print('没有输入任何内容')
    
  4. str

    • 对字符串进行索引,切片出来的数据都是字符串类型
    • 从左至右有顺序,下标,索引
    • 遵循顾头不固定原则,只能包含头部但不包含尾部
    s1 = 'python全栈22期'
    s2 = s1[0]
    #返回'p'
    
    • 索引可以从前往后,也可以从后往前
    s4 = s1[-1]
    print(s4)
    #返回期
    
    • 索引开头如果是0可以省略
    s5 = s1[:6]
    #返回python
    
    • 末尾如果是-1也可以省略
    s6 = s1[6:]
    print s6
    #返回全栈22期
    
    • 可以按照切片步长[开始:结束:步长]
    s7 = s1[:5:2]
    print s7
    #返回pto
    
    • 同样的也可以倒序
    s8 = s1[-1:5:-1]
    print (s8)
    #返回期22栈全
    
    • 结论

      • 按照索引: s1[index]
      • 按照切片: s1[start_index:end_index+1]
      • 按照切片步长: s1[start_index:end_index+1:2]
      • 反向按照切片步长: s1[start_index:end_index后延一位:-2]
      s9 = s1[::-1]
      print (s9)
      #返回期22栈全nohtyp
      
    • 应用

      • upper lower 全大写或者小写
      username = input('请输入用户名:')
      password = input('请输入密码:')
      your_code = input('请输入验证码')
      code = 'QweA'
      if you_code.upper() == code.upper()
      	if username == 'taibai' and password == '123' :
              print('登陆成功')
          else :
          	print('用户或密码错误')
      else :
          print('验证码错误')
      
      • startswitch 检查是否已某个字母开头

        • 语法
        .startswith('以某个字母开头',从某位开始,到某位结束)
        #从头开始的话可以省略
        
        • 实例
        s = 'taibai'
        print(s.startswith('t'))
        print(s.startswith('b',3,6))
        #以第三个字母为开头到第五个字母,同样遵循顾头不顾尾原则
        #返回结果True
        
      • replace 代替、替换

        • 语法
        .replace('原内容''被替换的内容',替换次数)
        #默认全部替换
        
        • 实例
        mag = 'alex很牛逼,alex是老男孩教育的创始人之一,alex长得很帅'
        msg1 = mag.replace('alex','太白',2)
        print(msg1) 
        #返回太白很牛逼,太白是老男孩教育的创始人之一,alex长得很帅
        
      • strip 删除指定的字符,默认空白

        • 空白包含 空格,\t(tab) \n(回车)
        • 语法
        .strip('指定字符')
        
        • 实例
        #删除空格
        s4 = '		\n太白\t'
        s5 = s4.strip()
        print(s5)
        #返回太白
        
        #删除指定的字符
        s4 = 'rre太白qsd'
        s5 = 's4.strip('reqsd')'
        print(s5)
        #返回太白
        #原理:从前往后,从后往前,同时查询,只要含有指定字符串中的字符就删去,直到遇到指定字符串以外的字符即停止
        
      • split 非常重要 切割

        • 默认按照空格分割,返回一个列表
        • 语法
        .split('分隔符',分割次数)
        
        • 实例
        #默认按照空格分割
        s6 = '太白 女神 吴超'
        l = s6.split()
        print(l)
        #返回['太白', '女神', '吴超']
        
        #指定分隔符
        l1 = s6.split(':')
        print(l1)
        #返回['太白 女神 吴超']
        
        #指定分割次数
        s6 = ' :barry:nvshen:wu'
        print(s6.split(':',2))
        #返回[' ', 'barry', 'nvshen:wu']
        
      • join 连接 非常好用

        • 通常用于在指定字符间插入特定的分隔符
        • 语法
        '要插入的分隔符'.join(指定的字符变量)
        
        • 实例
        s1 = 'alex'
        s2 = '+'.join(s1)
        #返回a+l+e+x
        
        #也可用于列表
        l1 = ['太白','女神','吴超']
        #前提:列表里面的元素都是str类型
        s3 = ':'.join(l1)
        print(s3)
        #返回太白:女神:吴超
        
      • count 计数

        • 语法
        count('指定字符',从第几位开始,到第几位结束)
        #默认检测所有字符
        
        • 实例
        s8 = 'ugasiohfoahfohowhegh'
        print(s8.count('a'))
        
      • format 格式化输出

        #第一种用法
        msg = '我叫{}今年{}性别{}'.format('大壮',25,'男')
        print(msg)
        #返回 我叫大壮今年25性别男
        
        #第二种用法
        msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮',25,'男')
        print(msg)
        
        #第三种用法:
        msg = '我叫{name}今年{age}性别{sex}'.format(age=25,sex='男',name='大壮')
        print(msg)
        
      • is系列

        name = 'taibai123'
        print(name.isalnum())#字符串由字母或数字组成
        print(name.isalpha())#字符串只由字母组成
        print(name.isdecimal())#字符串只由十进制组成
        
        #实例
        s1 = input('请输入金额')
        if s1.isdecimal():
            int(s1)
        else:
            print('你输入有误')
        
  5. for循环

    • 语法
    for  变量 in iterable :
        pass
    #可以和break、continue组合使用
    #for else和while else用法一样
    
    • 实例
    s1 =  '老男孩教育最好的讲师:太白'
    for i in s1 :
        print(i)
    
  6. len()函数

    • 作用

      统计字符串个数

    • 语法

    len(变量名)
    
  7. 作业

    • 简单的
    有变量name = "aleX leNb" 完成如下操作:
    移除 name 变量对应的值两边的空格,并输出处理结果
    name = "aleX leNb"
    print(name.strip())
    判断 name 变量是否以 "al" 开头,并输出结果
    print(name.startswith('al'))
    判断name变量是否以"Nb"结尾,并输出结果
    print(name.startswith('Nb',-2))
    将 name 变量对应的值中的 所有的"l" 替换为 "p",并输出结果
    print(name.replace('l','p'))
    将name变量对应的值中的第一个"l"替换成"p",并输出结果
    print(name.replace('l','p',1))
    将 name 变量对应的值根据 所有的"l" 分割,并输出结果。
    print(name.split('l'))
    将name变量对应的值根据第一个"l"分割,并输出结果。
    print(name.split('l',1))
    将 name 变量对应的值变大写,并输出结果
    print(name.upper())
    将 name 变量对应的值变小写,并输出结果
    print(name.lower())
    判断name变量对应的值字母"l"出现几次,并输出结果
    print(name.count('l'))
    如果判断name变量对应的值前四位"l"出现几次,并输出结果
    print(name.count('l',0,5))
    请输出 name 变量对应的值的第 2 个字符?
    print(name[1])
    请输出 name 变量对应的值的前 3 个字符?
    print(name[:3])
    请输出 name 变量对应的值的后 2 个字符?
    print(name[-2:])
    2.有字符串s = "123a4b5c"
     s = '123a4b5c'
    通过对s切片形成新的字符串s1,s1 = "123"
     s1 = s[:3]
     print(s1)
    通过对s切片形成新的字符串s2,s2 = "a4b"
     s2 = s[3:-2]
     print(s2)
    通过对s切片形成新的字符串s3,s3 = "1345"
     s3 = s[::2]
     print(s3)
    通过对s切片形成字符串s4,s4 = "2ab"
     s4 = s[1:-2:2]
     print(s4)
     通过对s切片形成字符串s5,s5 = "c"
     s5 = s[-1]
     print(s5)
    通过对s切片形成字符串s6,s6 = "ba2"
     s6 = s [5::-2]
     print(s6)
    
    • 使用while和for循环分别打印字符串s="asdfer"中每个元素。
    s = 'asdfer'
    number = 0
    while number < len(s) :
        print(s[number])
        number += 1
    for i in s :
        print(i)
    
    • 使用for循环对s=“asdfer"进行循环,但是每次打印的内容都是"asdfer”
    s = "asdfer"
    for i in s :
        print(s)
    
    • 使用for循环对s="abcdefg"进行循环,每次打印的内容是每个字符加上sb, 例如:asb, bsb,csb,…gsb。
    for i in s :
        print(i + 'sb')
    
    • 使用for循环对s="321"进行循环,打印的内容依次是:“倒计时3秒”,“倒计时2秒”,“倒计时1秒”,“出发!”。
    s = "321"
    for i in s :
        p_s = '倒计时{a}秒'.format(a = i)
        print(p_s)
    print('出发!')
    
    • 实现一个整数加法计算器(两个数相加)
    number_1 = input('请输入一个加数')
    number_2 = input("请输入第二个加数")
    if number_1.isdecimal() and number_2.isdecimal() :
        print(int(number_1)+int(number_2))
    else :
        print('你输入的参数错误')
    
    • 如:content = input(“请输入内容:”) 用户输入:5+9或5+ 9或5 + 9,然后进行分割再进行计算
    addition = input('请输入要计算的数')
    addition_p = addition.split('+')
    print( int(addition_p[0]) + int(addition_p[1]))
    
    • 选做题:实现一个整数加法计算器(多个数相加):
      如:content = input(“请输入内容:”) 用户输入:5+9+6 +12+ 13,然后进行分割再进行计算
    content = input("请输入内容")
    result = 0
    addition = content.split('+')
    for i in addition :
        if i.isdecimal() :
            result = int(i) + result
        else :
            print('你输入的内容有误请重试')
            break
    else :
        print(result)
    
    • 计算用户输入的内容中有几个整数(以个位数为单位)。
      如:content = input(“请输入内容:”) # 如fhdal234slfh98769fjdla
      content = input(“请输入内容:”)
    a=0
    for i in content :
        if i.isdecimal() :
            a += 1
    print (a)
    
    • 选做题:写代码,完成下列需求:
      用户可持续输入(用while循环),用户使用的情况:
      输入A,则显示走大路回家,然后在让用户进一步选择:
      是选择公交车,还是步行?
      选择公交车,显示10分钟到家,并退出整个程序。
      选择步行,显示20分钟到家,并退出整个程序。
      输入B,则显示走小路回家,并退出整个程序。
      输入C,则显示绕道回家,然后在让用户进一步选择:
      是选择游戏厅玩会,还是网吧?
      选择游戏厅,则显示 ‘一个半小时到家,爸爸在家,拿棍等你。’并让其重新输入A,B,C选项。
      选择网吧,则显示‘两个小时到家,妈妈已做好了战斗准备。’并让其重新输入A,B,C选项。
    while True :
        count  = input('请输入A\B\C').upper()
        if count ==  'A' :
            count_2 = input('''
            1.公交车
            2.步行
            请选择
            ''')
            if count_2 == '1' :
                print('10分钟到家')
                break
            elif count_2 == '2' :
                print('20分钟到家')
                break
        elif count == 'B' :
            print('走远小路回家')
            break
        elif count == 'C' :
            print('绕道回家')
            count_3 = input('选择游戏厅玩儿会儿还是网吧')
            if count_3 == '游戏厅' :
                print('一个半小时到家,爸爸在家拿棍子等你.请重新选择')
                continue
            elif count_3 =='网吧' :
                print('两个小时到家,妈妈已经做好战斗准备,请重新选择')
                continue
    
    • 写代码:计算 1 - 2 + 3 … + 99 中除了88以外所有数的总和
    a = 0
    b=0
    while a <100 :
        if a == 88 :
            a += 1
            continue
        if  a % 2 == 0 :
            b=b-a
        else :
            b=b+a
        a+=1
    print(b)
    
    • 判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海 ⾃来⽔来⾃海上
    count = input("请输入内容")
    if count ==count[::-1] :
        print(count)
    
    • 制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进行任意现实 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxxco
    count=input("请输入名字,地点,爱好,并用逗号隔开:")
    count_1 = count.split(',')
    count_2='敬爱可亲的{name},最喜欢在{place},干{hobby}'.format(name=count_1[0],place=count_1[1],hobby=count_1[2])
    print(count_2)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值