python纵向输出字符串while语句_Python 格式化输出和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('您输入的账号有误,请重新输入,\n 还有 %s 次机会' %(i))

else:

con = input('3次机会已用完,您是否还要继续尝试?Y')

if con == 'Y':

i = 3

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

#Python学习交流群:778463939

# 方法一

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)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值