zoukankan      html  css  js  c++  java
  • python第一章练习题

    本章总节
    练习题

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

    编译型:把源代码编译成机器语言的可执行文件,程序执行的时候执行可执行文件即可。

    优点:程序执行不需要源代码,不依赖语言环境,执行速度快,因为执行的是机器码文件,计算机可以直接读懂

    缺点:每次修改源代码都需要重新编译、跨平台性不好,不同的操作系统,调用底层的机器指令不同,需为不同平台生产不同的机器码文件

    编译型语言:如C、C++,Delphi

    解释型: 用户调用解释器,执行源代码文件,解释器把源代码文件一边解释成机器指令,一边交给cpu执行。

    优点:天生跨平台,因为解释器已经针对不同的平台做好了处理,源代码不需要考虑平台差异性;随时修改,改完源代码后直接运行看效果。

    缺点:运行效率低,所有代码均需要解释器边解释边执行,速度比编译型较慢;代码为明文

    python、java、PHP、ruby等

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

    交互式解释器、命令行、集成开发环境

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

    单行注释 用 # ,多行注释用 ''' '''

    4.布尔值分别有什么?

    True 、False

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

    • 变量名只能是字母、数字或下划线的组合
    • 变量名的第一个字符不能是数字
    • 关键字不能作为变量名,如[and as assert break class continue.......]
    • 官方推荐 下划线命名的格式: age_of_Jack , color_of_apple ,而非驼峰命名法

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

    >>> a = '12'
    >>> id(a)
    36274224
    

    7.写代码

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

    8.写代码

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

    count = 2
    total = 2
    while count <= 100:
        count += 1
        if count % 2 != 0:
            count = -1 * count
        count = abs(count)
        total = total + count
    
    print(count)
    

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

    # 使用 while循环实现输出1,2,3,4,5,7,8,9,11,12
    num = 1
    while num < 13:
        print(num)
        num += 1
    

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

    ''' 使用 while循环输出100-50,从大到小,如100,99,98.,到50时再从0循环输出到50,然后结束 
    '''
    num2 = 100
    tag = True
    while tag:
        print(num2)
        num2 -= 1
        if num2 == 49:
            num2 = 0
            while num2 <= 50:
                print(num2)
                num2 += 1
            else:
                tag = False
    
    

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

    # 使用 while循环实现输出1-100内的所有奇数
    num3 = 1
    while num3 <= 100:
        if num3 % 2 != 0:
            print('奇数:',num3)
    
        num3 += 1
    

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

    #同上, if num3 % 2 == 0
    

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

    n1=123456
    n2=n1

    n1 = 123456

    此时python解释器干了两件事,1、在内存中创建了一个 123456 ;2、在内存中创建了一个叫 n1的变量,并让n1指向了 123456

    n2 = n1

    1、在内存中创建了一个叫 n2 的变量,2、把变量 n2 指向 变量 n1 指向的数据(123456)

    如果这时候 n1 = 1111

    此时n2 依然为 123456


    1.制作趣味模板程序(编程题)

    需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示
    如:敬爱可爱的XXxX,最喜欢在Xx地方干xxx

    # 需求:等待用户输入名字、地点、爱好,根据用户的名字和爱好进行任意显示如:敬爱可爱的XXxX,最喜欢在Xx地方干xxx
    name = input('name:').strip()
    address = input('address:').strip()
    hobby = input('hobby:').strip()
    
    print("可爱的{_name},最喜欢在{_address}干{_hobby}".format(_name=name, _address=address, _hobby=hobby))
    

    2.输入一年份,判断该年份是否是闰年并输出结果。(编程题)

    注:凡符合下面两个条件之一的的年份是闰年。(1)能被4整除但不能被100整除。(2)
    能被400整除

    year = int(input('year:').strip())
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        print('闰年')
    else:
        print('非闰年')
    

    3.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息

    翻番?(编程题)

    # 3.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息翻番?(编程题)
    percent = 0.0325
    money = 10000
    total_money = 10000
    year = 1
    while True:
        if total_money >= money * 2:
            break
        total_money = total_money * (1 + percent)
        year += 1
    
    print(year)
    

    作业

    编写登陆接口
    基础需求:
    让用户输入用户名密码
    认证成功后显示欢迎信息
    输错三次后退出程序
    升级需求:
    。可以支持多个用户登录(提示,通过列表存多个账户信息)
    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示需把用户
    锁定的状态存到文件里)

    # *_*coding:utf-8 *_*
    import chardet
    import os
    '''
    lock.txt 文件中:
    gd1,locked
    gd2,0
    gd3,0
    (gd1表示用户名,0表示未锁定,locked表示锁定)
    '''
    users = [['gd1','123'],['gd2','123'],['gd3','123']] #用户列表
    count = 0
    lock_list = []
    login_success = False
    locked = False
    username_is_exit = False
    f = open('lock.txt', mode='r+')
    for i in f:
        lock_list.append(i.replace('
    ',''))
    print(lock_list)
    
    
    while count < 3:
        username = input("Username:").strip()
        for i in lock_list:
            if i.split(',')[0] == username:
                username_is_exit = True
                if i.split(',')[1] == 'locked':
                    locked = True
                    break
                # else:
                #     count = i.split(',')[1]
        if locked:
            print('locked....')
            break
        pwd = input("Password:").strip()
        for i in users:
    
            if i[0] == username:
                if i[1] == pwd:
                    login_success = True
                    count -= 1
                    break
                else:
                    login_success = False
    
        if locked and not login_success:
            print('locked....')
            break
        if login_success:
            print('登录成功')
            break
        else:
            print('登录失败')
            count += 1
        if username_is_exit:
            if count == 3:
                print('locked.........')
                # 把lock信息写入文件
                f_new = open('lock.txt', 'r+')
                new_line = f_new.read()
                for i in lock_list:
                    if username in i:
                        new_str = i.replace('0', 'locked')
                        new_line = new_line.replace(i, new_str)
                    else:
                        new_line = new_line
                f_new.write(new_line)
                f_new.close()
                f.close()
                os.remove('lock.txt')
                f_new2 = open('lock.txt', 'w')
                f_new2.write(new_line)
                f_new2.close()
                break
        else:
            if count == 3:
                print('locked.........')
                break
    f.close()
    
    
  • 相关阅读:
    Hibernate Tools-代码生成
    Java集合(二):List列表
    linux路由
    微软发布SQL Server on Linux
    微软Azure虚拟机备份服务在中国发布
    微软物联网平台再推新!
    微软宣布在Azure上支持更多的开放技术和选择
    2015年微软“十大”开源之举
    “云中论道”之——华山论剑 ,唯快不破:秘笈分享
    牛津计划折射2016年微软开源领域“大步走”
  • 原文地址:https://www.cnblogs.com/friday69/p/9160546.html
Copyright © 2011-2022 走看看