zoukankan      html  css  js  c++  java
  • 练习题

    Python基本数据类型

    1.说一下基本数据类型有哪些

    整型(int)

    作用:
    	记录年龄、身份证号、个数等等
    	
    定义:
    	age = 18
    

    浮点型(float)

    作用:
    	记录薪资、身高、体重
    	
    定义:
        salary = 3.3
        height = 1.87
        weight = 70.3
    

    字符串类型(str)

    作用:
    	记录描述性质的状态,名字、一段话
    
    定义:
        用引号('',"",''' ''',""" """,)包含的一串字符
        如:name = 'xxq'
    

    列表(list)

    作用:
        按位置记录多个值(同一个人的多个爱好、同一个班级的所有学校姓名、同一个人12个月的薪资)
        并且可以按照索引取指定位置的值
    
    定义:
        在[]内用逗号分隔开多个任意类型的值,一个值称之为一个元素
        如:list1 = [1,2,3,4,'5','六']
    
    注意点:
    	索引对应值,索引从0开始,0代表第一个
    

    字典(dic)

    作用:
    	用来存多个值,每个值都有唯一一个key与其对应,key对值有描述性功能
    	
    定义:
        在{}内用逗号分开各多个 key:value
        如:info={"name":'xxq',"age":18, "gender":'male'}
    

    布尔类型(bool)

    作用:
        	用来记录真假这两种状态
        定义:
            is_ok = True
            is_ok = False
        其他使用:
        	通常用来当作判断的条件,我们将在if判断中用到它
    

    元组类型(tuple)

    作用:
    	按照索引/位置存放多个值,只用于读,不用于改
    
    定义:
    	t = (1,1.3,'aaa')
    
    注意点:
        1.单独一个括号,代表包含的意思
        	x = (10)
        2.如果元组中只有一个元素,必须加逗号
        	x = (10,)
        3.元组不能改,指的是不能改里面的内存地址
            t = (1,[11,22])
            print(t,id(t[0]),id(t[1]))
            t[1][0] = 33		# 元组内的列表的元素还是可以改的
            print(t,id(t[0]),id(t[1]))
    
            (1, [11, 22]) 2038884272 59297864
            (1, [33, 22]) 2038884272 59297864
    

    集合类型(set)

    作用:
    	关系运算、去重
    	
    定义:
        在 {} 内通逗号隔开多个元素,多个元素满足以下条件:
            1.集合内的元素必须为不可变类型
            2.集合内的元素无序
            3.集合内的元素没有重复
    

    2.说一下交互

    什么是交互?

    交互就是人和计算机互动,人输入信息,计算机获取后,输出信息给人,循环往复的这个过程,就是交互。
    

    为什么要交互?

    为了让计算机可以和人一样沟通,要操控计算机就是通过这种可以交互的性质。
    

    怎么交互?

    输入 和 输出
    

    3.说一下运算符

    算数运算符

    包括:+、-、*、/、//、%、**
    
        # print(10 + 3.1)
        # print(10 + 3)
        # print(10 / 3)  # 结果带小数
        # print(10 // 3)  # 只保留整数部分
        # print(10 % 3) # 取模、取余数
        # print(10 ** 3) # 取模、取余数
    

    比较运算符

    包括:>、>=、<、<=、==、!=
    
        # print(10 > 3)
        # print(10 == 10)
        #
        # print(10 >= 10)
        # print(10 >= 3)
    
        # name=input('your name: ')
        # print(name == 'egon')
    

    赋值运算符

    1.变量的赋值:=
    
    2.增量赋值
        # age = 18
        # # age += 1  # age=age + 1
        # # print(age)
        #
        # age*=3
        # age/=3
        # age%=3
        # age**=3 # age=age**3
        
    3.链式赋值
        # x=10
        # y=x
        # z=y
        # z = y = x = 10 # 链式赋值
        # print(x, y, z)
        # print(id(x), id(y), id(z))
    
    4.交叉赋值
        m=10
        n=20
        # print(m,n)
        # 交换值
        # temp=m
        # m=n
        # n=temp
        # print(m,n)
    
        # m,n=n,m # 交叉赋值
        # print(m,n)
        
    5.解压赋值
        # 把五个月的工资取出来分别赋值给不同的变量名
            # mon0=salaries[0]
            # mon1=salaries[1]
            # mon2=salaries[2]
            # mon3=salaries[3]
            # mon4=salaries[4]
    
        # 解压赋值
            # mon0,mon1,mon2,mon3,mon4=salaries
            # print(mon0)
            # print(mon1)
            # print(mon2)
            # print(mon3)
            # print(mon4)
    
            # mon0,mon1,mon2,mon3=salaries # 对应的变量名少一个不行
            # mon0,mon1,mon2,mon3,mon4,mon5=salaries # 对应的变量名多一个也不行
    

    4.可变不可变类型的区别

    可变类型:
    	值改变,id不变,证明改的是原值,证明原值是可以被改变的
    	
    不可变类型:
    	值改变,id也改变了,证明是产生新的值,压根没有改变原值,证明原值是不可改变的
    

    5.基本数据类型 总结

    按照存值个数区分

    只能存一个值(可称为标量/量子类型):	数字、字符串
    可以存放多个值(可称为容器类型):	列表、元组、字典
    

    按照访问方式区分

    只能存一个值(可称为标量/量子类型):	数字
    可以存放多个值(可以用索引访问指定的值,又称为序列类型):	字符串、列表、元组
    key访问(可以用key访问指定的值,又称为映射类型):	字典
    

    按照可变不可变区分

    可变类型:	列表、字典
    不可变类型:	数字、字符串、元组
    

    6.简单描述定义一个变量x=10,在内存的栈区和堆区的存放情况

    栈区 存放变量名 x
    堆区 存放变量值 10
    

    7.简述一下 直接引用 和 间接引用

    直接引用:
    	直接把值传给变量名,如:
    	x = 10
    	print(x)
    
    间接引用:
    	把值传给一个变量后,间接把值传给另一个变量
    	x = 10
    	y = x
    	print(y)
    

    8.接收用户输入的:用户名、年龄、性别,然后选取最优格式化字符串的方式,按照如下格式输出:

    我的名字是:XXX

    我的年龄是:XXX

    我的性别是:XXX

    name = input('请输入姓名:')
    age = input('请输入年龄:')
    gender = input('请输入性别:')
    info = '''
    我的名字是:{name} 
    我的年龄是:{age} 
    我的性别是:{gender}
    '''.format(name=name, age=age, gender=gender)
    print(info)
    

    9.用算数运算符演示:取模运算、增量运算、交叉赋值、链式赋值、解压赋值

    # 取模(取余数)运算:
    print(10 % 3)
    
    # 增量运算:
    x = 10
    x += 1
    print(x)
    
    # 交叉赋值:
    a = 1
    b = 2
    a, b = b, a
    print(a, b)
    
    # 链式赋值:
    x = y = z = 1
    print(x, y, z)
    
    # 解压赋值:
    s = [1, 2, 3]
    m1, m2, m3 = s
    print(m1, m2, m3)
    

    10.写一段用户登录的代码:

    要求:

    1.用户输错3次,退出程序,并提示输错次数过多
    2.用户输入正确,则进入子程序,开始循环执行命令
    3.在循环内,用户输入退出命令,则退出所有循环

    username = 'xxq'
    password = '123'
    count = 0
    while count < 3:
        inp_username = input('请输入账号:')
        inp_password = input('请输入密码:')
        if username == inp_username and password == inp_password:
            print('登录成功!')
            while True:
                inp_cmd = input('请输入指令:(按‘q’退出程序)')
                if inp_cmd == 'q':
                    print('接收到退出指令,程序退出!')
                    break
                else:
                    print('指令', inp_cmd, '正在执行,按‘q’退出程序')
            break
        else:
            print('账号或面错误,请重试!')
            count += 1
    else:
        print('输错3次了,自动退出程序!')
    

    11.集合内元素的3个特征

    1.集合内的元素 必须为 不可变类型(数字、字符串、元组)
    
    2.集合内的元素 无序
    
    3.集合内的元素 没有重读
    

    12.集合的用途是什么?

    去重(如:列表去重)
    
    关系测试(如:取交集、取并集、取差集等)
    

    13.举例说明关系运算(交集、并集、差集、对称差集、父子集)

    ① 取出交集:两者共同的好友( & / .intersection() )

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends1 & friends2
    res = friends1.intersection(friends2)
    print(res)
    
    {'egon', 'jason'}
    

    ② 取出并集/交集:两者所有的好友( | / .union() )

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends1 | friends2
    res = friends1.union(friends2)
    print(res)
    
    {'egon', 'kevin', 'ricky', 'Jy', 'zero', 'jason'}
    

    ③ 取出差集:取出其中一个集合独有的好友( - / .difference() )

    取出 friends1 独有的好友:

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends1 - friends2
    res = friends1.difference(friends2)
    print(res)
    
    {'kevin', 'zero'}
    

    取出 friends2 独有的好友:

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends2 - friends1
    res = friends1.symmetric_difference(friends2)
    print(res)
    
    {'ricky', 'Jy'}
    

    ④ 对称差集:求2个用户独有的好友们(即:去掉共同的好友)( ^ )

    friends1 = {"zero","kevin","jason","egon"} # 用户1的好友们
    friends2 = {"Jy","ricky","jason","egon"}   # 用户2的好友们
    res = friends2 ^ friends1
    print(res)
    
    {'kevin', 'Jy', 'ricky', 'zero'}
    

    ⑤ 父子集:包含的关系( < / = / > / .issubset() )

    s1 = {1,2,3}
    s2 = {1,2,4}
    				# 不存在包含关系,下面比较均为False
    print(s1.issupersets2())
    print(s1 > s2)
    print(s1 < s2)
    s1 = {1,2,3}
    s2 = {1,2}
    print(s1.issubset(s2))
    print(s1 > s2)		# 当s1大于或等于s2时,才能说s1是s2的爹
    s1={1,2,3}
    s2={1,2,3}
    print(s1 == s2) # s1与s2互为父子
    

    14.基于集合对列表去重l1 = [1, 1, 1, 1, 1, 1, 2, 3, 3, 'a']

    l1 = [1, 1, 1, 1, 1, 1, 2, 3, 3, 'a']
    print(set(l1))
    

    15.简述一下集合去重的局限性

    1.只能针对不可变类型去重
    
    2.无法保证原来的顺序
    
  • 相关阅读:
    软件工程第一次结对作业
    软件工程第二次作业
    vue之vuex
    ceshi
    第3次 结构与部分
    第二次作业
    获得领跑衫感言
    期末总结
    第十四,十五周作业
    第七周作业
  • 原文地址:https://www.cnblogs.com/xuexianqi/p/13263235.html
Copyright © 2011-2022 走看看