python学习第一天练习

1 练习题

1、简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型。

答:编译型语言:执行效率高,代码调试和修改相对于解释型语言慢    C GO Java 

  解释型语言:执行效率低,代码调试和修改相对于编译型语言快  python perl php

2、执行 Python 脚本的两种方式是什么

答:交互式和文件形式

3、Pyhton 单行注释和多行注释分别用什么?

答:单行注释用#

  多行注释用''' ''' 三引号

4、布尔值分别有什么?

答:布尔值分别有True和False

5、声明变量注意事项有那些?

答:1、变量只能以字母和下划线开头

  2、变量只能包含数字字母和下划线

  3、变量不能使用python的关键字和内建

  4、变量名一定要具有可识别性

  5、可以使用驼峰或是下划线样式

6、如何查看变量在内存中的地址?

答:假设a是一个变量,id(a)返回的结果就是变量a在内地内存中的地址

7、写代码

实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!

code:

username=input("please input username: ")
password=input("please input password: ")
if username=='seven'and password=='123':
print('登陆成功!')
else:
print('登陆失败!')

 

实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

code:

count=0
while count<3:
username = input("please input username: ")
password = input("please input password: ")
if username=='seven'and password=='123':
print('登陆成功!')
break
else:
if count==2:
print("登陆失败三次,请稍后重试!")
break
else:
count+=1
print('登陆失败!')

实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

 code:

count=0
while count<3:
username = input("please input username: ")
password = input("please input password: ")
if (username=='seven' or username=='alex')and password=='123':
print('登陆成功!')
break
else:
if count==2:
print("登陆失败三次,请稍后重试!")
break
else:
count+=1
print('登陆失败!')

8、写代码
a. 使用while循环实现输出2-3+4-5+6...+100 的和

code:

sum1=0
sum2=0
sum3=sum1+sum2
a=2
while 2<=a<=100 :
if a % 2==0:
sum1+=a
a+=1
else:
sum2-=a
a+=1
print(sum3)

b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12

code:

b = 1
while 1 <= b and b < 13:
if (b == 6 or b == 10) :
b += 1
continue
else:
print(b)
b += 1

c.使用 while 循环实现输出 1-100 内的所有奇数

code:

c=0
while c>=0 and c<=100 :
if c % 2 != 0 :
print(c)
c+=1
else:
c+=1

 

e. 使用 while 循环实现输出 1-100 内的所有偶数

 

code:

c=0
while c>=0 and c<=100 :
if c % 2 == 0 :
print(c)
c+=1
else:
c+=1

 

现有如下两个变量,请简述 n1 和 n2 是什么关系?

n1 = 123456

n2 = n1

答:n1 和 n2 的 id()不同 ,类型type()和值 都不同

 2 作业:编写登陆接口

  

基础需求:

  让用户输入用户名密码 

  认证成功后显示欢迎信息 

  输错三次后退出程序

 code:

count=0
while count<3:
username = input("please input username: ")
password = input("please input password: ")
if username=='seven'and password=='123':
print('登陆成功!')
break
else:
if count==2:
print("登陆失败三次,请稍后重试!")
break
else:
count+=1
print('登陆失败!')

 

升级需求: 

  可以支持多个用户登录 (提示,通过列表存多个账户信息) 

  用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

 code:

a = ['alex', '123']
b = ['egon', '456']
c = ['xman', '789']
count = 0
counta = 0
countb = 0
countc = 0
user = open("e:\\user.txt", "a+", encoding="utf-8") # a+ 向文件中追加文件内容
user.close()

while count < 4:
username = input("please input username: ")
#--------打开文件并读取文件内容,去掉文件内容后的\n,并判断输入的用户名是否被锁定----------------#
with open("e:\\user.txt", 'r') as f:
deny = f.readlines()
for i in range(0, len(deny)):
deny[i] = deny[i].rstrip('\n')
if username in deny:
print('用户已被锁定,请联系管理员解锁!')
break
#-------------------------------------------------------------------------------------#
else:
password = input("please input password: ")
if (username == a[0] and password == a[1]) or (username == b[0] and password == b[1]) or (
username == c[0] and password == c[1]):
print('登陆成功!')
break
else:
if username == a[0]:
counta += 1

elif username == b[0]:
countb += 1

elif username == c[0]:
countc += 1
#------------当同一个用户密码输入错误三次后,将用户名写入文件--------------------------------#
if counta == 3:
with open("e:\\user.txt", 'a') as fa:
fa.write(a[0])
print('由于三次登陆失败,用户:', a[0], ' 已被锁定')
break
elif countb == 3:
with open("e:\\user.txt", 'a') as fa:
fa.write(b[0])
print('由于三次登陆失败,用户:', b[0], ' 已被锁定')
break
elif countc == 3:
with open("e:\\user.txt", 'a') as fa:
fa.write(c[0])
print('由于三次登陆失败,用户:', c[0], ' 已被锁定')
break
#-----------------------------------------------------------------------------------#
if count == 2:
print("登陆失败三次,请重试!")
break
else:
count += 1
print('登陆失败!')

 

posted @ 2018-12-02 00:22  XiaoFeijin  阅读(205)  评论(0)    收藏  举报