python—基础练习1

 

 

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

答:首先,编译型与解释型语言都属于高级语言。高级语言需要转换成二进制,然后CPU运行,所以两者是根据转换二进制方式的不同而进行区分的。

            编译型(翻译类):把我能读懂的代码编译(翻译)成机器能读懂的代码,然后让CPU运行。所以依赖编译器,写错的话需要重新编译运行,开发效率低。例如c   c++   Delphi  Go等等

            解释型:通过解释器把源代码边解释成机器指令,边让CPU运行。所以要有解释器,系统要支持python(windows需要安装,Linus,mac默认自带),写错了直接改源码再翻译,不需要先翻译成二进制,开发效率高。例如python  Java  PHP  

•执行效率:   编译型:翻译成了计算机直接能理解的语言后直接运行,所以执行效率高。

                解释型:所有代码需要边执行边运行,不能生成二进制代码,运行效率低。

 

•跨平台性(Windows,Linus,): 编译型:通过操作系统运行我的源代码,就是说在不同的操作系统上调用不同的指令。跨平台性差

                                                解释型:最大的特点就是跨平台,解释器做好了对不同平台的交互处理,一份源代码,所有平台可直接执行。

2. 执行 Python 脚本(script)的两种方式是什么

答:方法一:(内存操作)在windows命令行窗口键入python(事先你须安装好python,并配置好path),运行效果:

                    →                       

方法二:(硬盘操作)安装好Python后,它会自带一个IDLE编辑器,或者下载一个编辑器pycharm......

 

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

答:一、python单行注释符号(#):#号右边的内容在执行的时候是不会被输出的

        二、批量、多行注释符号:多行注释是用三引号'''   '''包含,例如:

 

 

4.布尔值(bool)分别有什么

答:True 和Flase

 

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

答:声明变量:先赋值

 

 

 下划线为官方命名方式。

 

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

答:id(变量名)  #查看内存地址      ,   print(id(变量名))

                                      

 

 

7.  写代码

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

user_name=input('user_name:')
passwd=int(input('passwd:'))
if user_name=='seven' and passwd==123:
    print('登陆成功')
else:
    print('登陆失败')

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

count=0
while count<3:
    user_name = input('user_name:')
    passwd = int(input('passwd:'))
    if user_name=='seven' and passwd==123:
        print('登陆成功')
        break
    else:
        print('登陆失败')
        count+=1

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

count=0
while count<3:
    user_name = input('user_name:')
    passwd = int(input('passwd:'))
    if user_name=='seven' or user_name=='alex' and passwd==123:
        print('登陆成功')
        break
    else:
        print('登陆失败')
        count+=1

 

8.写代码

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

i=2
count1=0
count2=0
while i<=100:
    if i%2==0:
        count1+=i
    else:
        count2+=-i
    i+=1
count=count1+count2
print(count)

 

i=2
h=0
while i <= 100:
    if i%2 == 0:
        h+=i
    elif i%2 == 1:
        h-=i
    i+=1
print(h)

 

print(sum(map(lambda x: x * -1 if x % 2 == 0 else x, [x for x in range(100) if x != 88])))

  

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

i=1
while i<=12:
    if i != 6 and i != 10:
        print(i)
    i+=1

 c. 使用while 循环输出100-50,从大到小,如100,99,98...,到50时再从0循环输出到50,然后结束

count=100
while count>=50:
    print(count)
    count-=1
    if count==50:
        count=1
        while count<=50:
            print(count)
            count+=1
        break

 

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

i=1
while i<=100:
    print(i)
    i+=2
i=1
while i<=100:
    if i%2==1:
        print(i)
    i+=2

 

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

i=2
while i<=100:
    print(i)
    i+=2

 

i=1
while i<=100:
    if i%2==0:
        print(i)
    i+=1

f.分别用while和for range 循环实现输出1-2+3...-99的结果

i=1
h=0
while i<=99:
    if i%2==0:
        h+=i
    elif i%2==1:
        h-=i
    i+=1
print(h)
h = 0
for i in range(100):
    if i % 2 == 0:
        h += i
    if i % 2 == 1:
        h -= i
print(h)

g.求1-100所有偶数的和

 

sum=0
for x in range(1,101):
    if x % 2==0:
        print(x)
        sum=sum+x
print("累加和是:",sum)

 

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

n1 = 123456
n2 = n1

答:使用同一内存地址,只是变量名不同

 

10.制作趣味模板程序(编程题)
需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示
如:敬爱可爱的xxx,最喜欢在xxx地方干xxx

 

name=input('Name:')
address=input('Address:')
hobby=input('Hobby:')

print('敬爱可爱的%s,最喜欢在%s地方干%s' % (name,address,hobby))

 

11. 输入一年份,判断该年份是否是闰年并输出结果。(编程题)
注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。

year=int(input('Year:'))
if year%4==0 or year%400==0 and year%100!=0:
    print('你猜的是闰年')
else:
    print('你猜错了')

 

12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?(编程题)

持有=10000年=0
利率=0.0325
while 持有<20000: 年+=1 持有=持有*(1+利率) print('%s年以后,存款会翻番'%year)

 

13.编写登陆接口

       基础需求:

  • 让用户输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后退出程序

     升级需求:

  • 可以支持多个用户登录 (提示,通过列表存多个账户信息)
  • 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

 

一. 基础需求

user_name='alex'
passwd=123
count=0
while count<3:
    n1=input('请输入你的用户名:')
    n2= int(input('请输入你的密码:'))
    if n1==user_name and n2==passwd:
        print('Welocome '.center(20,'-'))
        break
    else:
        if n1==user_name and n2!=passwd:
            print('你的密码错误')
        elif n1!=user_name and n2==passwd:
            print('你的用户名错误')
        else:
            print('你的用户名和密码都错误')
        count+=1
        if count==1:
            print('您还有两次机会')
        elif count==2:
            print('您还有一次机会')
        elif count==3:
            print('你的认证登陆失败'.center(20,'-'))

 

二. 升级需求

 

user_info = {
             'alex': '123',
             'shanshan': '456',
             'longting': '789'
}
f = open('D:\lock_user\sa.txt', 'r', encoding='utf-8')
lock_users = f.readlines()
exit_flag = False
count = 0
def put():
    global exit_flag
    # 声明全局变量
    exit_flag = True
while count < 3:
    user_name = input('输入你的用户名:')
    password = input('输入你的密码:')
    if user_name in user_info and user_name not in lock_users:
            if password == user_info[user_name]:
                print('登陆成功'.center(30, '*'))
                put()
                break
            else:
                print('你的密码错误'.center(30, '*'))
                count += 1
                if count < 3:
                    print('你还有%s次登陆机会' % (3-count))
                elif count == 3:
                    print('你的认证登陆失败,账号已被锁定'.center(20, '*'))
                    f = open('D:\lock_user\sa.txt', 'w', encoding='utf-8')
                    f.write(user_name)
                    f.close()
                    put()
                    break
    elif user_name in lock_users:
        print('对不起,你的用户已被锁定!')
        put()
        break
    else:
        print('用户名不存在!')
        put()

 

 14.猜年龄

练习1:猜年龄游戏 

要求:

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

练习2:猜年龄游戏升级版 

要求:

  1. 允许用户最多尝试3次
  2. 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
  3. 如何猜对了,就直接退出

 

count=0
age=22
while count<3:
   guess=int(input("你猜的年龄是:"))
   if guess==age:
       print('--------恭喜你猜对了----------')
       break
   elif guess>age:
       print('猜大了')
   else :
       print('猜小了')
       count+=1
count=0
age=22
while count<3:
   guess=int(input("你猜的年龄是:"))
   if guess==age:
       print('--------恭喜你猜对了----------')
       break
   elif guess>age:
       print('猜大了')
   else :
       print('猜小了')
   count+=1
   if count==3:
       print('-------游戏结束,你是否还想玩儿-------')
       print('输入Y/y,继续玩儿游戏, 输入N/n则退出')
       choice=input('请选择:')
       if choice=='Y' or choice=='y':
           count=0
       elif choice=='N' or choice=='n':
            print('你将退出游戏')

 

 

 

posted @ 2018-03-05 11:19  夜猫心理委员  阅读(347)  评论(0编辑  收藏  举报