Python格式化输出和while循环的两个小练习[Python基础]

python

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

python">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

#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)

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

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

以上是 Python格式化输出和while循环的两个小练习[Python基础] 的全部内容, 来源链接: utcz.com/z/530564.html

回到顶部