import sys global_times = 0 global_pswd= 'abc@123' def login(pswd, saved_pswd)每一行代码的注释: global global_times if pswd == saved_pswd: print('密码输入正确!') global_times = 0 return True else: global_times = global_times + 1 print('密码输入第{}次错误!'.format(global_times)) if global_times >= 3: print('错误输入超过3次,账号已被冻结!') sys.exit() else: return False logged=False while(not logged): inputpsw = input('请输入密码:') logged=login(inputpsw, global_pswd) print('*****登录成功!*****')
时间: 2024-04-27 11:25:02 浏览: 14
# 这段代码定义了一个全局变量 global_times,初始值为0,用于记录密码输入错误的次数。
# 定义了一个全局变量 global_pswd,用于存储正确的密码。
# 定义了一个 login 函数,用于检查输入的密码是否与正确的密码匹配。
# 如果匹配成功,函数返回 True 并将 global_times 重置为0。
# 如果匹配失败,函数返回 False 并将 global_times 加1,同时输出错误信息。
# 如果 global_times 大于等于 3,表示错误输入已经超过3次,函数将输出提示信息并终止程序。
# 如果未超过3次,函数继续等待用户输入密码。
# 在 while 循环中,程序会要求用户输入密码,然后调用 login 函数进行密码验证。
# 如果验证成功,程序将设置 logged 变量为 True 并输出登录成功的提示信息。
# 如果验证失败,程序将继续要求用户输入密码,直到登录成功为止。
相关问题
def register_admin(self): adm_id = uop.generate_unique_user_id() adm_unm = 'daddy_daddy' adm_pswd = 'daddy' adm_time = datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S") adm_role = 'admin' register = Admin(adm_id,adm_unm,adm_pswd,adm_time,adm_role) str_register = eval(str(register)) str_register['user_password'] = uop.encrypt_password(adm_pswd) with open('./data/user.txt','w') as f1: f1.write(str_register + '\n')为什么我这里会有AttributeError: 'str' object has no attribute 'user_id'?
在你的代码中,`str_register`是一个字符串类型的对象,而非Admin对象。你在将`register`对象转换为字符串时,使用了`eval()`函数,这个函数将字符串转换为Python对象,但是这里的字符串并不符合Python对象的格式,因此会出现错误。
正确的做法应该是将`register`对象转换为字典类型的对象,然后再将这个字典对象转换为字符串,这样就可以正确地写入到文件中了。可以按照以下方式修改你的代码:
```python
def register_admin(self):
adm_id = uop.generate_unique_user_id()
adm_unm = 'daddy_daddy'
adm_pswd = 'daddy'
adm_time = datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S")
adm_role = 'admin'
register = Admin(adm_id, adm_unm, adm_pswd, adm_time, adm_role)
register_dict = {
'user_id': register.user_id,
'user_name': register.user_name,
'user_password': uop.encrypt_password(adm_pswd),
'user_register_time': register.user_register_time,
'user_role': register.user_role
}
str_register = str(register_dict)
with open('./data/user.txt', 'w') as f1:
f1.write(str_register + '\n')
```
这样就可以正确地将Admin对象写入到文件中了。注意,这里使用的是字典类型的对象,而非字符串类型的对象。
def get_config(ip_list): for ipaddr,os,name,pswd in ip_list: session = ConnectHandler(device_type=os, ip=ipaddr, username=name, password=pswd, banner_timeout=300) print("connecting to "+ ipaddr + os)怎么将os= huawei的情况进行if语句
你可以使用以下代码:
```
def get_config(ip_list):
for ipaddr, os, name, pswd in ip_list:
if os == "huawei":
session = ConnectHandler(device_type=os,
ip=ipaddr,
username=name,
password=pswd,
banner_timeout=300)
print("connecting to " + ipaddr + os)
else:
print("Invalid OS")
```
在这个代码中,我们检查 `os` 是否等于 `"huawei"`,如果是,则建立连接并打印连接信息。否则,我们将打印一个错误消息表明操作系统无效。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)