• day01 格式化输出和while循环的两个小练习


    练习1.模拟登陆判断(3次机会)

    r_name = 'xianyu'
    r_password = '123456'
    
    i = 3       # 用来控制循环次数
    
    while i > 0:
        name = input('请输入你的账号:')
        i -= 1
        if name == r_name:                                                  # 输入的账号正确时
            password = input('请输入您的密码')                              # 可继续输入密码
            if password == r_password:                                      # 若密码正确
                print('登录成功, %s 欢饮您!' %(r_name))                     # 登录成功,退出循环
                break
            else:                                                           # 若密码错误
                if i:
                    print('密码输入错误,您还有 %s 次机会尝试,请重新登录' %(i))  # 提示用户剩余机会
                else:
                    con = input('3次机会已用完,您是否还要继续尝试?Y')
                    if con == 'Y':
                        i = 3
        else:                                                               # 输入的账号错误时
            if i:
                print('您输入的账号有误,请重新输入,
     还有 %s 次机会' %(i))
            else:
                con = input('3次机会已用完,您是否还要继续尝试?Y')
                if con == 'Y':
                    i = 3

    练习2.求1-2+3-4+5-6...+99的值,要求跳过88

    # 方法一
    i = 1
    sum = 0
    while i < 100:
        if i % 2:
            sum += i
        else:
            if i == 88:
                pass
            else:
                sum -= i
        i += 1
    print(sum)
    
    # 方法二
    j = 0
    k = -1      # 把所有的都当做加法,减偶数就相当于加上一个负偶数,k用来表示正负
    sum2 = 0
    while j < 99:       # i 是从零开始的,先自加了
        j += 1
        if j == 88:
            k = -k
            continue
        else:
            k = -k
            sum2 += j*k
    print(sum2)

    在第一个例子中,使用了 %s 。%s相当于一个占位符,可用来进行格式化输出,一般字符串用%s占位,数字用 %d 占位

    在格式化输出的字符串中,若同时存在%,需要使用两个 %% 进行转义表示 

    str = '''
    -------------- %s 的自我介绍------------
    姓名: %s
    年龄: %d
    身高: %d cm
    体重: %d kg
    性别: %s
    %s ,你的身体素质打败了 %d%% 的人.
    ------------------------------------------
    ''' %(name,name,age,height,weight,sex,name,25)
    print(str)

    在上面的代码中,占位符必须与后面的值一一匹配.最后的两个%实际显示出来只有一个

    格式化输出的另一种方法时使用字符串的 .format() 方法,任然以上面的代码为例使用.format方法来进行格式化,有三种方式

    str = '''
    -------------- {} 的自我介绍------------
    姓名: {}
    年龄: {}
    身高: {} cm
    体重: {} kg
    性别: {}
    {} ,你的身体素质打败了 {}% 的人.
    ------------------------------------------
    '''.format(name,name,age,height,weight,sex,name,25)
    print(str)

    在这种方式中,所有的占位符都可以用{}来代替.最后的值仍要一一匹配,name出现了3次

    第二种方法

    str = '''
    -------------- {0} 的自我介绍------------
    姓名: {0}
    年龄: {1}
    身高: {2} cm
    体重: {3} kg
    性别: {4}
    {0} ,你的身体素质打败了 {5}% 的人.
    ------------------------------------------
    '''.format(name,age,height,weight,sex,25)
    print(str)

    在这种方法中,相当于对后面的值进行了索引编号,按照编号对应,不用重复书写

    第三种方法与第二种类似,只是将索引换为变量名,再在后面对变量进行赋值即可,此处不再赘述.

  • 相关阅读:
    开发新手最容易犯的50个 Ruby on Rails 错误(1)
    Spring Data Redis 让 NoSQL 快如闪电(2)
    为什么每个程序员都应该懂点前端知识?
    如何在 Flickr 上找到又酷,又有趣,且版权自由的照片?
    微服务扩展新途径:Messaging
    为什么现代企业无法真正实现组合式监控?
    开发者和程序员需要关注的42个播客
    战略性情绪分析的5大数据来源
    Spring Data Redis 让 NoSQL 快如闪电 (1)
    对抗告警疲劳的8种方法
  • 原文地址:https://www.cnblogs.com/87pzy/p/10517913.html
Copyright © 2020-2023  润新知