python闯关_python闯关_Day02

Q1:写一个用户循环猜年龄的游戏,猜对就退出,猜不对就继续猜,猜三次,提示用户是否继续,用户回答Y或者y就继续猜,三次之后再重复,回答N或n就结束游戏。

#! /usr/bin/env python

#-*- coding:utf-8 -*-

#猜年龄

import random

age = random.randint(1,10)

print (age)

iscontinue = 1

while iscontinue:

for i in range(3):

guess = int(input("请猜数:"))

if guess == age:

print('猜对了。')

iscontinue = 0

break

else:

print('猜错了')

if iscontinue == 0:

break

strContinue = input('还继续吗?(y/n)')

if strContinue == 'y' or strContinue == 'Y':

iscontinue = 1

elif strContinue == 'n' or strContinue == 'N':

iscontinue = 0

else:

print ('输入错误,退出')

注意

1. input 返回的是str,需要强制转换成int

2. break只能跳出一层,如果要连续跳出,需要在外层做一道判断

3. 判断用户输入的处理,不简洁,打算用regex来实现,没有时间再查了。

Q2:写一个用户认证程序,有三组用户名和密码,每当任意一个用户密码输入错误三次则对该用户进行限制登录

#! /usr/bin/env python

#-*- coding:utf-8 -*-

"""

u1:p1

u2:p2

u3:p3

"""

auth = {'u1':'p1','u2':'p2','u3':'p3'}

auth_lock = {'u1':0,'u2':0,'u3':0}

while True:

uname = input('请输入用户名:')

if auth_lock[uname] == 1:

print(uname,'已经被锁定(连续输错3次密码)。')

break

au_times = 1

while au_times <= 3:

upass = input('请输入密码:')

if upass != auth[uname]:

print ('用户名密码错误(', au_times, ')。')

au_times += 1

if au_times > 3:

auth_lock[uname] = 1

break

else:

print ('认证通过。')

au_times = 0

break

if au_times == 0:

break

注:

1. 用了2个字典,一个字典用于存储用户名密码,另一个字典用来保存对应的用户名是否被锁。

2. 不健壮,没有对输入进行校验,如果输入了非key,则会报"keyerror",有对应的解决办法。待后面补充。

Q3  打印乘法小九九代码

for i in range(1,10):

for j in range(1,10):

print("%d*%d=%2d" % (i,j,i*j),end=" ")

print("-")

Q4 打印金字塔图形

for i in range(20):

print(' ' * (20-i-1) + '*' * (2*i+1) )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值