第一题
分别画出下面两个列表在内存中是如何存放的 l1=[11,22,[333,444]] l2=[11,22,[33,{'name':'egon','age':18}]]
如下图所示
第二题
用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式 ------------ info of Egon ----------- Name : Egon Age : 22 Sex : male Job : Teacher ------------- end -----------------
如下:
#-*- coding:utf-8 -*- def main(): name = input('please enter your name:').strip() age = int(input('please enter your age:').strip()) sex = input('please enter your sex:').strip() job = input('please enter your job:').strip() printinfo(name,age,sex,job) def printinfo(name,age,sex,job): print('{0:-^30}'.format('info of Egon')) print('Name:{0} Age:{1} Sex:{2} Job:{3}'.format(name,age,sex,job)) print('{0:-^30}'.format('end')) if __name__ == '__main__': main()
运行结果:
第三题
用户输入账号密码,程序分别单独判断账号与密码是否正确,正确输出True,错误输出False即可
代码如下:
#!/usr/bin/env python #-*- coding:utf-8 -*- def main():
tag = False username = input('please enter your account:').strip() if username == 'Egon': passwd = input('please enter your password:').strip() if passwd == 'Alex666': tag = True print(tag) if __name__ == '__main__': main()
测试用例:
[{'Egon':'Alex666'},{'Tank':'CCCDDD'},{'Egon':'VIPbnc'}]
运行结果:
[root@Kingstar test]# /usr/bin/python test_2.py please enter your account:Egon please enter your password:Alex666 True [root@Kingstar test]# [root@Kingstar test]# /usr/bin/python test_2.py please enter your account:Tank False [root@Kingstar test]# /usr/bin/python test_2.py please enter your account:Egon please enter your password:VIPbnc False [root@Kingstar test]#
第四题
让计算机提前记下egon的年龄为18岁,写一个才年龄的程序,要求用户输入所猜的年龄
,然后程序拿到用户输入的年龄与egon的年龄比较,输出比较结果即可
代码如下:
#!/usr/bin/env python #-*- coding:utf-8 -*- def main(): user_info = {'egon':18} guess_age = int(input('please enter the age of egon:').strip()) if guess_age == user_info.get('egon'): print('猜对了!') elif guess_age < user_info.get('egon'): print('猜小了!') else: print('猜大了!') if __name__ == '__main__': main() [root@Kingstar test]# /usr/bin/python test_3.py please enter the age of egon:18 猜对了! [root@Kingstar test]# /usr/bin/python test_3.py please enter the age of egon:19 猜大了! [root@Kingstar test]# /usr/bin/python test_3.py please enter the age of egon:17 猜小了!
第五题
程序从数据库中取出来10000条数据,打算显示到页面中,
但一个页面最多显示30条数据,请选取合适的算数运算符,计算
显示满30条数据的页面总共有多少个?
最后一页显示几条数据
代码如下:
#!/usr/bin/env python #-*- coding:utf-8 -*- def main(): num_of_data = 10000 per_data = 30 print(f'显示满30条数据的页面一共有{num_of_data//per_data}') print('最后一页显示{0}条数据'.format(num_of_data%per_data)) if __name__ == '__main__': main() [root@Kingstar test]# /usr/bin/python test_4.py 显示满30条数据的页面一共有333 最后一页显示10条数据
第六题
egon今年为18岁,请用增量赋值计算3年后egon老师的年龄
代码如下:
#!/usr/bin/env python #-*- coding:utf-8 -*- def main(): age = 18 print('3年后,{0}的年龄为{1}'.format('egon',age+3)) if __name__ == '__main__': main() [root@Kingstar test]# /usr/bin/python test_5.py 3年后,egon的年龄为21
第七题
将值10一次性赋值给变量名x、y、z >>> x=y=z=10 >>> print(x,y,z) 10 10 10 >>>
第八题
请将下面的值关联到它应该对应的变量名上,你懂的 dsb = "egon" superman = "alex"
>>> dsb = 'egon'
>>> superman = 'alex'
>>> dsb,superman = superman,dsb
>>> print(dsb,superman)
alex egon
>>>
第九题
我们只需要将列表中的傻逼解压出来,一次性赋值给对应的变量名即可 names=['alex_sb','wusir_sb','oldboy_sb','egon_nb','lxx_nb','tank_nb']
>>> names=['alex_sb','wusir_sb','oldboy_sb','egon_nb','lxx_nb','tank_nb']
>>> x,y,z,*_=names
>>> print(x,y,z)
alex_sb wusir_sb oldboy_sb
>>>
附加题:
编写用户登录接口(学的多的同学,尝试做下述作业,这是截止到下周二学完文件处理之后的作业) #1、输入账号密码完成验证,验证通过后输出"登录成功" #2、可以登录不同的用户 #3、同一账号输错三次锁定(附加功能,在程序一直运行的情况下,一旦锁定,则锁定5分钟后自动解锁) #扩展需求:在3的基础上,完成用户一旦锁定,无论程序是否关闭,都锁定5分钟
代码如下:
#!/usr/bin/env python #-*- coding:utf-8 -*- #project:login #author:surpass_w import os import sys import time import subprocess from threading import Timer user_info = [{'account':'egon','password':'success888'}, {'account':'alex','password':'ok666abc'}, {'account':'surpass','password':'svipaa1'}] err_record = [{'account':'egon','record':0}, {'account':'alex','record':0}, {'account':'surpass','record':0}] lock_file = 'block_account.txt' class Login: def __init__(self,user_dict,err_dict,interval): self.user_dict = user_dict self.err_dict = err_dict self.interval = interval def login(self): count = 0 self.del_lock_account = [] while True: try: f = open(lock_file,'r+') except: cmd = 'touch %s chmod +x %s' % (lock_file,lock_file) subprocess.check_call(cmd,shell=True) f = open(lock_file,'r+') lock_user_list = f.readlines() self.lock_account_dict = {lock_user_list[i].replace(' ','').split(' ')[0] :lock_user_list[i].replace(' ','').split(' ')[1] for i in range(len(lock_user_list))} username = input('Please enter your account >>>:') if username in self.lock_account_dict.keys(): print('The account [%s] has been locked' % username) elif username in self.user_dict.keys(): password = input('Please enter your password >>>:') if password == self.user_dict.get(username): print('Welcome %s, a successful login!' % username) sys.exit(0) else: self.err_dict[username] += 1 if self.err_dict[username] == 3: lock_time = int(time.time()) self.del_lock_account.append(username) f.write(username+' '+str(lock_time)+' ') self.err_dict[username] = 0 print('The account [%s] is about to be locked' % username) self.t = Timer(self.interval,self.update_lock_file) self.t.start() else: print('Wrong password! You have 3 chances in all, remain %d.' %(3-self.err_dict[username])) else: count += 1 if count == 3: print('Enter invalid account 3 times, the system is shutdown!') sys.exit(0) else: print('The account [%s] does not exist! Please reenter, you have 3 chances'+ 'in all, remain %d.' % (3-count)) f.close() def update_lock_file(self): for i in range(len(self.del_lock_account)): if self.del_lock_account[i] in self.lock_account_dict.keys(): local_machine_time = int(time.time()) if (int(self.lock_account_dict.get(self.del_lock_account[i])) +300) == local_machine_time: del self.lock_account_dict[self.del_lock_account[i]] f1 = open(lock_file,'w') for k,v in self.lock_account_dict.items(): f1.write(k+' '+v+' ') f1.close() def main(): user_dict = {user_info[i].get('account'):user_info[i].get('password') for i in range(len(user_info))} err_dict = {err_record[j].get('account'):err_record[j].get('record') for j in range(len(err_record))} interval = 300 l = Login(user_dict,err_dict,interval) l.login() if __name__ == '__main__': main()