• Python测试(二)


    # 1.计算1-300之间所有能被3和7整除的所有数之和
    # num = 0
    # for i in range(1,300):
    # if i%3 ==0 and i%7 ==0:
    # num += i
    # print(num)
    ##############################################################################################################
    # 2. 定义函数统计一个字符串中大写字母, 小写字母, 数字的个数, 并返回结果
    # def cal(anystr): #定义函数的接收值
    # big_write = 0 #大写初始值为0
    # small_write = 0 #小写初始值为0
    # num = 0 #数字初始值为0
    # for i in anystr: #遍历循环i
    # if i.isupper(): #判断大写方法
    # big_write +=1 #计数并加1
    # if i.islower(): #判断小写方法
    # small_write +=1 #计数并加1
    # if i.isdigit(): #判断数字方法
    # num +=1 #计数并加1
    # #else:
    # # print('抱歉,我不认识')
    # #return
    # print('大写的字母是:%s 个'%big_write) #输出
    # print('小写的字母是:%s 个' %small_write) #输出
    # print('数字是:%s 个' %num) #输出
    # cal(input()) #input()本身会被python转换为字符串,所有可以输入
    # #为什么不能再for循环后面加else和return?
    # #当是小写或数字的时候,依然会遍历,遍历的值传给了else,所以直接执行了return
    ##############################################################################################################
    # 3.获取两个列表 i1=[11,22,33],i2=[22,33,44]中相同的元素集合
    # i1 = [11,22,33]#创建列表i1
    # i2 = [22,33,44]#创建列表i2
    # set_i1 = set(i1)#创建集合set_i1
    # set_i2 = set(i2)#创建集合set_i2
    # set_i1_i2 = set_i1&set_i2# & 求交集
    # print(set_i1_i2)
    ##############################################################################################################
    # 4.将字符串 "老男人" 转换成utf-8编码的字节类型
    # str1 = '老男人'
    # str2 = str1.encode(encoding='UTF-8')
    # print(str2)
    ##############################################################################################################
    # 5.如何计算数字绝对值
    # num = -15647615 #创建数字类型
    # num_abs = abs(num) #abs方法转换为绝对值
    # print(num_abs) #输出
    ##############################################################################################################
    # 6.简述深浅拷贝原理
    # 浅拷贝:针对简单的数据类型可以进行浅拷贝,因为浅拷贝指copy数据类型的第一层,公用原copy的数据的内存地址,
    # 对于复杂的数据类型,如嵌套等不适合用
    # 深拷贝:完全复制一套全新的数据(同时赋予新数据新的内存地址)
    ##############################################################################################################
    # 7.举例布尔值为False的值
    # 数字类型为0、数据类型判断为空、None的布尔值都是False
    ##############################################################################################################
    # 8.内置函数all和any的区别
    # 内置函数:all():
    """
    Return True if bool(x) is True for any x in the iterable.
    如果传入的可迭代对象的任何值为真,则返回值为真;如果为空则为假【每个值都为真才为真】
    If the iterable is empty, return False.
    """
    # 内置函数:any():
    #
    # Return True if bool(x) is True for any x in the iterable.
    # 如果传入的可迭代对象的任何值为真,则返回值为真;如果为空则为假【任何一个值都为真就为真,全部为假才是假】
    # If the iterable is empty, return False.
    ##############################################################################################################
    # 9.利用内置函数将十进制数字12,分别转换成二进制,八进制,十六进制表示的字符串
    # num = 12
    # print(bin(num)) #bin()十进制转换为二进制
    # 0b1100
    # print(oct(num)) #oct()十进制转换为八进制
    # 0o14
    # print(hex(num)) #hex()十进制转换为十六进制
    # 0xc
    ##############################################################################################################
    # 10.简述内置函数dir,help,type作用
    # 内置函数dir :查看某一个指定对象的内置方法有哪些
    # 内置函数help:查看某一个指定类的类库详情
    # 内置函数type:查看某一个对象的类型(type本身就是所有类的母类)
    ##############################################################################################################
    # 11.简述内置函数globals(),locals()作用
    # 内置函数globals:获取当前代码下的所有的全局变量
    # 内置函数locals:获取当前代码下的所有的局部变量
    ##############################################################################################################
    # 12.简述三元运算书写格式
    # 结果为真时输出 if+条件 else 结果为假时输出
    # print(1 if 5<3 else 2)
    # print('条件为真时输出我'if 1<2 else '条件为假时输出我')
    ##############################################################################################################
    # 13.简述lambda表达式
    # lambda:匿名函数,使用场景一般用于简单函数,或者在只是用一次的环境下,不需要花费时间重新定义函数的情况下
    # a = [1,2,3,4,5]
    # print(list(map(lambda b:b**2,a)))
    # [1, 4, 9, 16, 25]
    #一般用法:变量名 = lambda 变量(可多个):算式(简单算式)
    #################################################################################################################
    # 14.利用内置函数zip(),实现功能
    # l1=["alex",22,33,44,55]
    # l2=["is",22,33,44,55]
    # l3=["good",22,33,44,55]
    # l4=["guy",22,33,44,55]
    # 请获取字符串s="alex_is_good_guy"
    # l = list(zip(l1,l2,l3,l4))
    # l_1 = l[0]
    # l_2 = '_'.join(l_1)
    # print(l_2)
    # alex_is_good_guy
    # print('_'.join(list(zip(l1,l2,l3,l4))[0]))
    #################################################################################################################
    # 15.简述文件打开模式,r和rb的区别
    # r :read()返回的数据类型是str型
    # rb:readbytes()返回的数据类型是bytes
    #################################################################################################################
    # 16.文件操作时with的作用
    # 文件操作的with会在python中自动调用close()方法,使代码更简洁
    #################################################################################################################
    # 17.利用with实现同时打开两个文件(一读一写)
    # with open('test.txt','r',encoding='utf-8') as f2 ,open('test.log','w',encoding='utf-8') as f1:
    # r2 = f2.read()
    # print(r2)
    # f1.write('pandaboy')
    #################################################################################################################
    # 18.函数默认返回值是什么
    # None
    #################################################################################################################
    # 19.简述函数的普通参数,指定参数,默认参数,动态参数的特点以及注意事项
    # 函数的普通参数:严格按照顺序,将实际的参数数值赋值给形式参数
    # 函数的指定参数:指定参数和默认参数(关键字参数):默认参数必须放在参数列表的最后,指定参数将实际的参数赋值给制定的形式参数
    # 函数的动态参数(可变参数):允许用户输入的信息是不同的数据类型,可以是列表、字典、元祖等(*args,**kwargs)
    #################################################################################################################
    # 20.通过字符串格式化将7.88123输出时仅保留小数点后两位,列如:bala7.88bala
    # str1 = 134351.5432132
    # deal = '{0:.2f}'.format(str1)
    # print(deal)
    #################################################################################################################
    # 21.判断以下字符串格式化是否正确,如果不正确请改正
    # tpl1 = "i am{name},age{age},really{name}".format(name = "seven",age = 18)--->正确
    # tpl2 = "i am{0},age{1}".format(["seven",18])
    # |
    # |
    # tpl2 = "i am{0},age{1}".format("seven",18)
    #################################################################################################################
    # 22.python有几种导入模块的方式
    # 常规导入:1---import sys
    # 2---import sys as syss
    # 使用from语句导入
    # 相对导入
    # 可选导入
    # 局部导入
    #################################################################################################################
    # 23.分页,如果有192个商品,每页显示10个商品,问共需要几页
    # import math
    # shop_item = 192
    # page_item = 10
    # page = shop_item/page_item
    # print(math.ceil(page))#向上取整数
    #################################################################################################################
    # 24.函数传递参数时,是引用还是复制值?
    # python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。
    # 这种方式相当于传值和传引用的一种综合。
    # 如果函数收到的是一个可变对象(比如字典或者列表)的引用,
    # 就能修改对象的原始值--相当于通过“传引用”来传递对象。
    # 如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。
    #################################################################################################################
    # 25.python3中的range函数和python2.7中的range函数有什么区别?
    # range的返回值不同。
    # python2.7的range函数返回的是一个列表值
    # python3的range函数返回的是一个可迭代对象
    #################################################################################################################
    # 26.python中导入模块时,如何搜索路径?
    # import语句导入指定的模块时会执行三个步骤
    # 1.在指定路径下搜索模块文件,找到模块文件
    # 2.指定的模块在被导入时就会被编译成字节码,即编译成.pyc文件
    # 3.依靠模块的代码中的定义来创建其所定义的对象,模块文件中的所有语句会依次执行,
    # 从头至尾,而此步骤中任何对变量名的赋值运算,都会产生所得到的模块文件的属性
    # 但是请注意:模块只在第一次导入时才会执行如上步骤,后续的导入操作只不过是提取内存中已加载的模块对象
    # 可以使用reload()命令重新加载指定的模块
    #################################################################################################################
    # 27.sys.argv的作用
    # import sys
    # print(sys.argv)
    # 返回一个列表值,列表中的内容为当前文件的绝对路径
    #################################################################################################################
    # 28.如何获取一个路径的上级目录的路径
    # import os
    # abspath = os.getcwd()
    # # path = os.path.abspath(os.path.join(os.path.dirname(abspath),os.path.pardir))
    # path1 = os.path.abspath(os.path.dirname(abspath))
    # # print(abspath)
    # # print(path)
    # print(path1)
    #################################################################################################################
    # # 29.请将下三个路径按照a,b,c的顺序拼接起来
    # a= "/users/sever"
    # b = "lib"
    # c = "bin"
    # import os
    # d = os.path.join(a,b,c)
    # print(d)
    #################################################################################################################
    # 30,简述获取一个随机字母的思路
    # 思路1:直接利用ascII值获取随机数
    # 1.random获取随机整数
    # 2.ASCII的字母值分别为97-122,65-90
    # 3.循环随机取两个范围中的一个值
    import random,string
    num1 = random.randint(97,122)
    num2 = random.randint(65,90)
    for i in random.sample([num1,num2],1):print(chr(i))
    # 思路二:内置方法
    print(random.choice(string.ascii_letters))
    Win a contest, win a challenge
  • 相关阅读:
    【算法学习笔记】27.动态规划 解题报告 SJTU OJ 1254 传手绢
    【算法学习笔记】26.扫描维护法 解题报告 SJTU OJ 1133 数星星
    【算法学习笔记】25.贪心法 均分纸牌问题的分析
    【算法学习笔记】24.记忆化搜索 解题报告 SJTU OJ 1002 二哥种花生
    【算法学习笔记】23.动态规划 解题报告 SJTU OJ 1280 整装待发
    【算法学习笔记】22.算法设计初步 二分查找 上下界判断
    【算法学习笔记】21.算法设计初步 求第k个数 划分法 快排法
    【算法学习笔记】20.算法设计初步 归并排序 求逆序数
    【算法学习笔记】19.算法设计初步 最大子列和问题的几种方法
    【算法学习笔记】18.暴力求解法06 隐式图搜索2 八数码问题 未启发
  • 原文地址:https://www.cnblogs.com/pandaboy1123/p/8569662.html
Copyright © 2020-2023  润新知