day1_17-9-3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day1_17-9-3相关的知识,希望对你有一定的参考价值。

一、应用练习

1.需求练习

编写登陆接口

要求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序
技术分享
#!/usr/bin/env python
#coding:utf-8
time=0
data={
    zhangsan:{ps:zs123},
    lisi:{ps:ls123},
}
while time < 3:
    name = input(请输入姓名:)
    if not name in data:
        print(无此用户)
        continue
    password = input(请输入您的密码:)
    if password == data[name][ps]:
        print(Log in successfully)
    else:
        print(用户名或密码错误)
        time+=1
else:
    print(超过最大次数)
代码

 

升级需求 

  • 可以支持多个用户登录 
  • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态
技术分享
#存储用户
data={
    zhangsan:{ps:zs123},
    lisi:{ps:ls123}
}
#打开同目录下名字为user的文件(只读),
#把读到的内容给变量
#正查关闭文件
us1=open(user,r)
name=us1.read()
us1.close()
time=0
while time < 3:
    user=input(your name >>> )
    if not user:continue
    if user in name :
        print(The account!)
        break
        #输入的名字等于在文件里读取到的内容则告诉用户为锁定状态,并推出循环。
    elif not user in data:
        print(Without this user\\n)
        continue
        #如果输入的名字不等于已知的用户名,告诉用户后跳出本次循环。
    else:
        passwod = input(password >>> )
        if passwod == data[user][ps]:
            print(Log in successfully)
            exit()
            #如果密码对的话,正常登陆后退出脚本
        else:
            print(User name or password error!\\n)
            time+=1
            #密码输入错误,告诉用户并重新输入用户名密码,纪录次数
else:
    print(超过最大次数,请联系管理员)
    record=open(user,a)
    record.write(%s\\n%user)
    record.close()
    exit()
    #达到三次后告诉用户并打开user文件追加已经输入3次的用户名后正常关闭文件。
代码

 

2.日常练习

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

技术分享
编译型语言为一次行读入所有内容,一次性执行所有内容
优点:执行速度快,等同条件下对系统要求较低
缺点:不方便代码测试、排错,调试不方便
编译型语言包括:C/C++、Pascal/Object Pascal(Delphi)

解释型语言为逐行翻译行,一行一行执行
优点:方便代码的调试,及时发现问题及时解决
缺点:执行速度相对编译性语言慢
解释型语言包括:python、Java、C#javascript、VBScript、Perl、Ruby、MATLAB
偏见

 

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

shell模式运行适合脚本中某段代码的调试;利用解释器运行,python的功能最全,官方推荐。

 

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

单行注释用"#",多行注释用三引好"‘‘‘"或四引号""""""

 

布尔值分别有什么?

True和False,真或假

 

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

技术分享
1、变量名职能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头。例:1_agent是错误的方式,应该写为 agent_1。

2、变量名不能包含空格,但可使用下划线来分割其中的单词。例:installed apps 这样会引起错误,正确的方式为installed_apps。

3、Python关键字喝函数名不能用做变量,即不可以使用Python保留用于特殊用途的单词。

4、慎用小写字母l喝大写字母O,可能被人错看成数字1和0。

5、变量名应既简短又具有描述性。
注意事项

 

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

print(id(x))

 

3.代码练习

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

技术分享
name=seven
ps=123
user=input(输入用户名: )
password=input(输入密码: )
#print(type(ps),type(password))
if user==name and int(password)==ps:
    print(登陆成功)
else:
    print(登陆失败)
代码

 

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

技术分享
name=seven
ps=123
time=0
while time < 3:
    user = input(输入用户名: )
    password = input(输入密码: )
    if user==name and int(password)==ps:
        print(登陆成功)
    else:
        print(登陆失败)
        time+=1
代码

 

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

技术分享
data={
    seven:{ps:123},
    alex:{ps:123}
}
time=0
while time < 3:
    user = input(输入用户名: )
    password= input(输入密码: )
    if user in data and password==data[user][ps]:
        print(登陆成功)
    else:
        print(登陆失败)
        time+=1
代码

 

使用while循环实现输出2-3+4-5+6...+100 的和。

技术分享
i=2
n=0
while i <=100:
    if i%2==0:
        n+=i
    else:
        n-=i
    i+=1
    print(n)
代码 while实现

 

使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12;使用 while 循环实现输出 1-100 内的所有奇数;使用 while 循环实现输出 1-100 内的所有偶数。

技术分享
#while循环固定数
i=1
while i<13:
    if i==6 or i==10:
        i+=1
        continue
    print(i)
    i+=1

#while循环奇数
i=1
while i<=100:
    if i%2==1:
        print(i)
    i+=1

#while循环偶数
i=1
while i<=100:
    if i%2==0:
        print(i)
    i+=1
代码

 

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

      n1 = 123456

      n2 = n1

公用一个内存(id号想等)的两个变量
print(id(n1),id(n2))

 

 

二、格式化输出练习

要求:

技术分享
练习:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
------------ info of Egon -----------
Name  : Egon
Age   : 22
Sex   : male
Job   : Teacher 
------------- end -----------------
练习1

代码:

#!/usr/bin/env python
# coding:utf-8
name=input(your name >>> )
age=input(your age >>> )
sex=input(your sex >>> )
job=input(your job >>> )

print(------------ info of Egon -----------\\n
      name\\t:  %s\\n
      age \\t:  %s\\n
      sex \\t:  %s\\n
      job \\t:  %s\\n
      ------------- end -----------------
      % (name, age, sex, job))

效果:

技术分享

 

三、while循环练习

3.1 while循环嵌套等练习:

技术分享
#要求如下
 1 循环验证用户输入的用户名与密码
 2 认证通过后,运行用户重复执行命令
 3 当用户输入命令为quit时,则退出整个程序 
练习1

代码:

#!/usr/bin/env python
# coding:utf-8

data={
‘zhangsan‘:{‘ps‘:‘zs123‘},
‘lisi‘:{‘ps‘:‘ls123‘}
}
cond=True
while cond:
name=input(‘your name >>> ‘)
if not name in data:
print(‘Incorrect account entry!\\n‘)
continue
passwod=input(‘your password >>> ‘)
if passwod==data[name][‘ps‘]:
print(‘Log in successfully\\n‘)
while cond:
cmd=input(‘shell # ‘)
if not cmd:continue
if cmd==‘quit‘:
cond=False
continue
else:
print(cmd)
else:
print(‘User name or password error!\\n‘)


效果:

技术分享

3.2 循环练习

3.2.1、使用while循环输出1 2 3 4 5 6     8 9 10 。

技术分享
num=1                     
while num < 11:           
    if num == 7:          
        num+=1            
        continue          
    print(num)            
    num+=1                
代码

 

 

3.2.2、求1-100的所有数的和。

技术分享
a=1                      
i=0                      
while a <= 100 :         
    i+=a    # i=i+a      
    a+=1                 
print(i)                 
代码

 

 

3.2.3、输出 1-100 内的所有奇数;输出 1-100 内的所有偶数。

技术分享
#奇数
num=0                    
while num < 101:         
   if num % 2 == 1:      
       print(num)        
   num+=1                
                         


#  偶数
num=0                    
while num < 101:         
   if num % 2 == 0:      
       print(num)        
   num+=1                
                         
代码

 

 

3.2.4、求1-2+3-4+5 ... 99的所有数的和。

技术分享
#while循环
 num=0                  
 i=0                    
 while i < 100:         
     if i%2==0:         
         num-=i         
     else:              
         num+=i         
     i+=1               
 print(num)             

#For
 num=0                  
 for i in range(100):   
     if i % 2 == 0:     
         num = num - i  
     else:              
         num = num + i  
 print(num)             

###
rslt=0                       
for n in range(1,100):       
    rslt += n*(-1,1)[n&1]    
print(rslt)                  
代码

 

 

3.2.5、用户登陆(三次机会重试)。

技术分享
data={                                
    zhangsan:{ps:zs123},        
    lisi:{ps:ls123}             
}                                     
time=0                                
while time<3:                         
    name = input(your name >>> )    
    if not name in data:              
        print(没有此用户\\n)              
        continue                      
    passwd = input(your password >>> 
    if passwd == data[name][ps]:    
        print(登陆成功!)                
        exit()                        
    else:                             
        print(用户名或密码错误!\\n)          
        time+=1                       
else:                                 
    print(超出最大登陆次数)                 
代码

 

 

3.2.6、猜年龄游戏

要求:

    允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出。

技术分享
age=36                                              
i=0                                                 
while i<3:                                          
    user_age=input(Please guess the age > )       
    #print(type(age),type(user_age))                
    if user_age == str(age):                        
        print("That‘s right. That‘s good!")         
        exit()                                      
    else:                                           
        print(Guess wrong!)                       
        i+=1                                        
                                                    
代码

 

升级版本要求:

允许用户最多尝试3次

    每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序。

    如何猜对了,就直接退出。

技术分享
age=36                                               
i=0                                                  
while i<3:                                           
    user_age=input(Please guess the age > )        
    #print(type(age),type(user_age))                 
    if user_age == str(age):                         
        print("That‘s right. That‘s good!")          
        exit()                                       
    else:                                            
        print(Guess wrong!)                        
        i+=1                                         
    if i == 3:                                       
        con=input(是否继续?继续输入"y")                    
        if con ==(yorY):                         
            i = 0                                    
            continue                                 
        else:                                        
            print(坚持才会胜利,拜~)                       
            continue                                 
                                                     
代码

 

以上是关于day1_17-9-3的主要内容,如果未能解决你的问题,请参考以下文章

day1_字符集,流程控制语句

Python全栈_Python基础_Day1

Python学习笔记_Day1_初始Python

Day1_Python基础_15.while loop

week14_day1(玩转JQuery)

day1:作业 编写登录接口并画出相应的流程图