练习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)
在这种方法中,相当于对后面的值进行了索引编号,按照编号对应,不用重复书写
第三种方法与第二种类似,只是将索引换为变量名,再在后面对变量进行赋值即可,此处不再赘述.