精华内容
下载资源
问答
  • 【判断题】Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。【填空题】Python内置函数__用来返回序列的最大元素【填空题】表达式 int(4**0.5) 的值为【填空题】语句x = 3==3, 5执行结束...

    【判断题】Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。

    【填空题】Python内置函数__用来返回序列中的最大元素

    【填空题】表达式 int(4**0.5) 的值为

    【填空题】语句x = 3==3, 5执行结束后,变量x的值为

    【填空题】表达式 3 and 5 的值为

    【填空题】表达式 len(range(1, 10)) 的值为

    【填空题】表达式 "ab’ in "acbed’ 的值为

    【填空题】已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果为

    【填空题】使用切片操作在列表对象x的开始处增加一个元素3的代码为

    【判断题】Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。

    【填空题】表达式 list(range(5)) 的值为

    【填空题】已知 x = [3, 5, 7],那么执行语句 x[len(x):] = [1, 2]之后,x的值为

    【填空题】表达式 3 or 5 的值为

    【判断题】在Windows平台上编写的Python程序无法在Unix平台运行。

    【填空题】Python内置函数__用来返回序列中的最小元素

    【填空题】表达式 min(["11’, "2’, "3’]) 的值为

    【填空题】假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是

    【填空题】已知 x = 3,那么执行语句 x *= 6 之后,x的值为

    【填空题】表达式 3<5>2 的值为

    【判断题】在Python 3.x中可以使用中文作为变量名。

    【判断题】Python 3.x完全兼容Python 2.x。

    【填空题】Python内置函数______用来返回数值型序列中所有元素之和

    【填空题】转义字符’ ’的含义是

    【填空题】表达式 sum(range(10)) 的值为

    【填空题】Python语句list(range(1,10,3))执行结果为

    【填空题】已知列表 x = [1, 2, 3],那么执行语句 x.insert(0, 4) 之后,x的值为

    【填空题】表达式“[3] in [1, 2, 3, 4]”的值为

    【填空题】已知 x = [[1]] * 3,那么执行语句 x[0][0] = 5之后,变量x的值为

    【填空题】已知列表对象x = ["11’, "2’, "3’],则表达式 max(x) 的值为

    【判断题】已知 x = 3,那么赋值语句 x = "abcedfg’ 是无法正常执行的。

    【填空题】已知 x = 3,那么执行语句 x += 6 之后,x的值为

    【判断题】Python变量名必须以字母或下划线开头,并且区分字母大小写。

    【填空题】已知 x = [1, 2, 3, 2, 3],执行语句 x.pop() 之后,x的值为

    【填空题】已知 x = [3, 5, 7],那么表达式 x[10:]的值为

    【判断题】不可以在同一台计算机上安装多个Python版本。

    【判断题】在Python中可以使用if作为变量名。

    【判断题】9999**9999这样的命令在Python中无法运行。

    【填空题】已知 x = 3,并且id(x)的返回值为 496103280,那么执行语句 x += 6 之后,表达式 id(x) == 496103280 的值为

    【填空题】已知列表 x = [1, 2],那么连续执行命令 y = x和 y.append(3) 之后,x的值为

    【判断题】Python采用的是基于值得自动内存管理方式。

    【填空题】代码 for i in range(3):print(i, end=’,’)

    【填空题】切片操作list(range(6))[::2]执行结果为

    【填空题】已知列表 x = [1, 2, 3],那么执行语句 x.insert(1, 4) 之后,x的值为

    【填空题】Python运算符中用来计算整商的是

    【判断题】3+4j不是合法的Python表达式。

    【填空题】已知x=3和y=5,执行语句 x, y = y, x 后x的值是

    【填空题】表达式[1, 2, 3]*3的执行结果为

    【填空题】任意长度的Python列表、元组和字符串中最后一个元素的下标为

    【判断题】Python是一种跨平台、开源、免费的高级动态编程语言。

    【填空题】表达式 sum(range(1, 10, 2)) 的值为

    展开全文
  • 在Python中采用列表动态创建变量名并调用动态创建变量名并调用问题描述创建类调用类并动态创建变量名调用变量名并输出结果测试输出结果 转载请注明出处哦 动态创建变量名并调用 写代码过程,也许你会碰见这样的...


    转载请注明出处哦

    动态创建变量名并调用

    在写代码过程中,也许你会碰见这样的情况:需要多次创建一种类或者模型,如果采用手动输入,设置不同的变量名(如val_1,val_2,val_3……),这个过程将会烦不胜烦,因此,动态创建变量名将会减少大量重复的工作,减轻你的负担。此处以为例,展示如何通过列表的形式创建大量的变量名并调用。

    问题描述

    实现一个基数排序算法,用于10进制的正整数从小到大的排序。

    思路是保持10个队列(队列0、队列1…队列9、队列main),开始,所有的数都在main队列,没有排序。

    第一趟将所有的数根据其10进制个位(09),放入相应的队列09,全放好后,按照FIFO的顺序,将每个队列的数合并排到main队列。

    第二趟再从main队列队首取数,根据其十位的数值,放入相应队列0~9,全放好后,仍然按照FIFO的顺序,将每个队列的数合并排到main队列。

    第三趟放百位,再合并;第四趟放千位,再合并。

    直到最多的位数放完,合并完,这样main队列里就是排好序的数列了。

    创建类

    首先,此处创建一个Queue(队列)类,类中包含了isEmpty,enqueue,dequeue,size四种方法。isEmpty判断Queue是否为空,enqueue在列表中左侧插入一个值,dequeue在删除列表右侧的值并返回,size返回长度。具体如下:

    class Queue:
        def __init__(self):
            self.items = []
    
        def isEmpty(self):
            return self.items == []
    
        def enqueue(self, item):
            self.items.insert(0, item)
    
        def dequeue(self):
            return self.items.pop()
    
        def size(self):
            return len(self.items)
    

    调用类并动态创建变量名

    这里a为我们动态创建的变量名,每一个都是指向一个类。

    mylist = eval(input("Please enter a list(must be a list of number):\n"))
    a = [0] * 10  #此处创建一个长度为10的列表
    n = len(str(max(mylist)))
    
    creat_class = locals()
    for ii in range(10): #此处开始动态创建变量名
        creat_class['queue_' + str(ii)] = Queue()
        a[ii] = creat_class['queue_' + str(ii)]
    mainqueue = Queue()
    

    调用变量名并输出结果

    通过以上创建的变量,可以通过对变量进行调用类中的isEmpty,enqueue,dequeue,size四种方法。

    for ii in range(len(mylist)):
        mainqueue.enqueue(mylist[ii])
    
    for i0 in range(n):
    
        while mainqueue.isEmpty() is False:
            main_element = mainqueue.dequeue()
            temp = int(main_element/(10**i0) % 10)
            for k0 in range(10):
                if temp is k0:
                    a[k0].enqueue(main_element) # 通过变量调用enqueue方法。
    
        for j1 in range(10):
            while a[j1].isEmpty() is False: # 通过变量调用isEmpty方法。
                other_element = a[j1].dequeue() # 通过变量调用dequeue方法。
                mainqueue.enqueue(other_element)
    
    output = []
    while mainqueue.isEmpty() is False:
        main_element2 = mainqueue.dequeue()
        output.append(main_element2)
    
    print(output)
    

    测试

    我们输入一个乱序的数字列表,得到重新排序的列表,下面为输入的乱序列表:

    [19,97,8,15,96,9,21,0]
    

    输出结果

    代码得到的输出结果如下:

    [0, 8, 9, 15, 19, 21, 96, 97]
    

    Perfect,怎么样,是不是很方便呢?

    如有不足,请多多指教。

    展开全文
  • Python中如何将字符串作为变量名

    千次阅读 2020-01-11 15:33:12
    通过配置文件获取服务器上配置的服务及运行端口号,编写python脚本检测服务上服务是否运行? #!/usr/bin/env python # -*- coding:utf-8 -*- # fileName: config.py # 服务配置 class config: serviceList = '...

    应用场景描述:

    通过配置文件获取服务器上配置的服务名及运行端口号,编写python脚本检测服务上服务是否在运行?

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # fileName: config.py
    # 服务配置
    class config:
        serviceList = 'service1,service2,service3'
        service1 = '服务1'
        service1Port = 8001
        service2 = '服务2'
        service2Port = 8002
        service3 = '服务3'
        service3Port = 8003
    

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # fileName: envCheck.py
    import socket
    from config import config
    
    config = config
    serviceList = config.serviceList
    
    # 判断某端口服务是否运行
    def portCheck(host, port):
        sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sk.settimeout(1)
        try:
            sk.connect((host, port))
            # print '在服务器 %s 上服务端口 %d 的服务正在运行!' % (host, port)
            return True
        except Exception:
            # print '在服务器 %s 上服务端口 %d 的服务未运行!' % (host, port)
            return False
        sk.close()
    
    # 基础服务运行状态检测
    def envCheck():
        for serviceName in serviceList.split(','):
            host = '127.0.0.1'  # 必须为字符串格式,如:'127.0.0.1'
            servicePort = ''.join(['config.',serviceName,'Port'])
            port = eval(servicePort)  # 端口必须为数字
            if portCheck(host, port):
                print u"在%s服务器上服务端口为 %s 的 %s 服务正在运行......" % (host, port, serviceName)
            else:
                print u"在%s服务器上服务端口为 %s 的 %s 服务未运行!" % (host, port, serviceName)
    
    
    if __name__ == "__main__":
        envCheck()
    

    这个里面使用到了将字符串作为变量名的方式从配置中获取服务端口,下面我们具体看下除了这种方式以外还有哪些方式可以实现

    一共有三种实现方法:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    # 方法一:
    >> servicePort = ''.join(['config.',serviceName,'Port'])
    >>port = locals()[servicePort)] 
    >>print "%s:%d" %(serviceName, port)
    # 输出结果
    service1Port:8001
    service2Port:8002
    service3Port:8003
    
    # 方法二:
    >> servicePort = ''.join(['config.',serviceName,'Port'])
    >>port = vars()[servicePort)] 
    >>print "%s:%d" %(serviceName, port)
    # 输出结果
    service1Port:8001
    service2Port:8002
    service3Port:8003
    
    # 方法三:
    >> servicePort = ''.join(['config.',serviceName,'Port'])
    >>port = eval(servicePort) 
    >>print "%s:%d" %(serviceName, port)
    # 输出结果
    service1Port:8001
    service2Port:8002
    service3Port:8003
    

    1. locals()

    locals是python的内置函数,他可以以字典的方式去访问局部和全局变量。

    python里面用名字空间记录着变量,就像javascript的window一样,他记录着各种全局变量。

    每个模块,每个函数都有自己的名字空间,记录着变量,常量,类的命名和值。

    就像JS一样,当python在使用变量时,会按照下面的步骤去搜索:

    • 函数或类的局部变量。
    • 全局变量。
    • 内置变量。

    以上三个步骤,其中一步骤找到对应的变量,就不会再往下找。如果在这三个步骤都找不到,就会抛出异常。

    locals与globals的区别

    • locals()是只读的。globals()不是。这里说的只读,是值对于原有变量的只读。其实还可以对locals()赋值的。
    • globals返回的是当前模块的全局变量 locals返回的是局部变量。注意,locals返回的是当前所在最小命名空间的局部变量的一个拷贝。

    体检locals

    list1 = [1,2,3]  
    locals()  
      
    # 在全局中使用locals,会打印出list1和__builtins__、__name__、__doc__、__package__  
    复制代码  
    def foo(args):  
        x=1  
        print locals()  
      
    foo(123)  
      
    #将会得到 {'arg':123,'x':1}
    

    2. vars()

    本函数是实现返回对象object的属性和属性值的字典对象。如果默认不输入参数,就打印当前调用位置的属性和属性值,相当于locals()的功能。如果有参数输入,就只打印这个参数相应的属性和属性值。

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    #vars()    
        
    print(vars())    
        
    class Foo:    
        a = 1    
    print(vars(Foo))    
        
    foo = Foo()    
    print(vars(foo))
    

    3. eval()

    eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果。

    结合math当成一个计算器很好用。

    其他用法,可以把list,tuple,dict和string相互转化。见下例子:

    a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"  
    b = eval(a)  
    b  
    Out[3]: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]  
    type(b)  
    Out[4]: list  
    a = "{1: 'a', 2: 'b'}"  
    b = eval(a)  
    b  
    Out[7]: {1: 'a', 2: 'b'}  
    type(b)  
    Out[8]: dict  
    a = "([1,2], [3,4], [5,6], [7,8], (9,0))"  
    b = eval(a)  
    b  
    Out[11]: ([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
    

    强大的函数有代价。安全性是其最大的缺点。

    想一想这种使用环境:需要用户输入一个表达式,并求值。

    如果用户恶意输入,例如:

    __ import__('os').system('dir')
    

    那么eval()之后,你会发现,当前目录文件都会展现在用户前面。

    那么继续输入:

    open('文件名').read()
    

    代码都给人看了。获取完毕,一条删除命令,文件消失。哭吧!

    怎么避免安全问题?

    (1) 自行写检查函数;

    (2) 使用ast.literal_eval

    展开全文
  • Python之谜:如何获取变量名

    千次阅读 多人点赞 2019-06-27 17:34:02
    Python之谜:如何获取变量名? 初步尝试 今天我们探讨Python中一个看似很简单,实则并不容易的问题。这个问题是:如何获得变量的名字? 举例说明,给定一个变量var,给它赋值字符串"foo"。即 In [1]: var = "foo" ...

    Python之谜:如何获取变量名?

    初步尝试

    今天我们探讨Python中一个看似很简单,实则并不容易的问题。这个问题是:如何获得变量的名字?

    举例说明,给定一个变量var,给它赋值字符串"foo"。即

    In [1]: var = "foo"
    

    现在我们需要得到变量var的名字,即"var"。

    尝试下面两种方法,我们得到的都是变量的值"foo",而不是变量的名字"var"。

    In [2]: print var
    foo
    
    In [3]: print "%s" % var
    foo
    

    怎么办呢?我们接着探索变量var的全部属性和方法:

    In [4]: print dir(var)
    ['__add__', '__class__', '__contains__', ..., 'capitalize', 'center', ...]
    

    经过尝试后发现,在var的71个(这个数字通过print len(dir(var))得到)属性和方法中,没有一个能够让我们得到var的名字。

    由此可见,得到变量值(value)容易,得到变量名(name)看起来十分困难

    两个示例

    在进一步探索其他方案之前,我们先看下"获取变量名"在Python编程中到底有没有实际意义。这里,举两个小例子,说明"获得变量名"的好处。

    示例1

    第一个例子是关于异常处理的。如果能够得到变量名,那么Python异常的错误消息(Error Message)将变得更加有意义。例如:

          1 first_num, second_num = 1, 2
          2 if first_num != second_num:
    ----> 3     raise RuntimeError("%s is not equal to %s" % (first_num, second_num))
    
    RuntimeError: 1 is not equal to 2
    

    这里错误消息RuntimeError: 1 is not equal to 2的可读性是比较差的,1和2分别是什么?我们需要结合源码才能明白。假如能够在Error Message中输出1和2各自的变量名first_numsecond_num,无疑是一件好事情。

    示例2

    第二个例子是基于一组变量创建字典。已知若干变量,name, address, age, gender,我们希望基于它们创建一个字典person。一般可以这样实现:

    person = {}
    person["name"] = name
    person["address"] = address
    person["age"] = age
    person["gender"] = gender
    

    虽然这种实现完全可行,但是对于像我这样有"洁癖"的Python爱好者来说,有两点觉得不舒服。一是变量的名字出现了重复;二是赋值语句(不管是=赋值还是:赋值)出现了重复。当变量数量越多时,重复情况就越多。

    如果能够使用类似下面这种循环来实现,代码就能更加简洁:

    for i in [name, address, age, gender]:
        person[i] = i # 由于i是变量值,因此不可行
    

    以上两个示例说明获得变量名对于Python编程是有好处的。

    一种间接方案

    然而,在前文我们也看到了,得到Python变量名是困难的。那么,为什么无法直接得到Python变量名呢?查阅相关资料后发现,在Python中,变量名字是对象(object)的单向(而不是双向)引用。也就是说,根据变量名,能够直接得到它所指向的对象;反之,根据对象,是无法得到指向它的变量名的。

    之所以有这么一个规定,是基于成本考虑的。在程序中,往往存在大量的变量(整型,字符串,列表,字典,布尔…)。如果每一个变量都需要有一个包含指向它的变量名的列表,那么这些列表的创建和维护的成本(实现成本,执行成本…)将变得难以承受。

    既然直接方法不可行,那么有没有间接的方法呢?Python的inspect模块提供了一种间接方案。以示例2为例,基于inspect的For循环实现为:

    import inspect
    
    def retrieve_name(var):
        callers_local_vars = inspect.currentframe().f_back.f_locals.items()
        return [var_name for var_name, var_val in callers_local_vars if var_val is var]
    
    name, address, age, gender = "bob", "hangzhou", 21, "man"
    person = {}
    
    for i in [name, address, age, gender]:
        person[retrieve_name(i)[0]] = i
    
    print person
    

    执行脚本,结果符合预期:

    root@hzettv53:~# python test.py
    {'gender': 'man', 'age': 21, 'name': 'bob', 'address': 'hangzhou'}
    

    这种方案的基本思路是:通过inspect模块的currentframe()方法得到一个包含调用者的所有局部变量的名字和值的列表,然后从列表中搜索变量值与目标值相同的元素,并返回该元素对应的变量名。

    虽然这种方案在一些情况下能够工作,但是其弊端是显而易见的:1) 实现的复杂度较高 2) 如果存在多个变量值相同的情况,那么retrieve_name()函数将返回多个变量名,从而无法得到精确结果。基于这两点因素,这个方法中并没有多大的实际应用意义。

    总结

    综上所述,我们可以看到,Python编程中并不存在一种高效和可靠的方法去获得变量名。所幸的是,尽管获得变量名在某些场景下有好处,但是这种好处往往并不显著,并且一般都存在替代方案。因此,尽管Python无法支持获得变量名这一需求,但是日常的Python开发工作并不会因此受到多大影响。

    展开全文
  • python打印变量名

    千次阅读 2020-01-02 11:33:07
    aa = 1 print(aa) 输出结果: 1 使用print简单打印变量的...python中内置locals()是打印变量名的关键。 aa = 1 print(locals()) 输出结果: {..., 'aa': 1, '__name__': '__main__', '__spec__': None,...} ...
  • python中lambda表达式自由变量的坑

    千次阅读 2017-04-11 09:12:59
    Python中函数是一个对象, 和整数,字符串等对象有很多相似之处,例如可以作为其他函数的参数或返回对象, Python中的函数还可以携带自由变量, 两者无疑极大增进了Python的表达力. 但是Python函数自由变量的内部机制...
  • Python if 后面接变量

    千次阅读 2017-03-10 11:26:04
    pythonif语句表条件判断:如果后面直接接变量的话:如果args.channel_swap非空,则运行条件代码。那么如何判断但变量是否非空呢?Python中除了”、”“、0、()、[]、{}、None为False之外,其他的都是True。
  • python 动态生成变量名以及动态获取变量的变量名

    万次阅读 多人点赞 2018-07-05 16:19:04
    python 动态生成变量名 locals函数 代码之前,先介绍一个函数: locals() 函数会以字典类型返回当前位置的全部局部变量。 菜鸟上的例子: >>>def runoob(arg): # 两个局部变量:arg、z ... z = 1 ...
  • Python函数和变量名解析

    千次阅读 2018-06-05 21:26:32
    Python函数和变量名解析1、Python函数函数是Python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构,用于将相关功能打包并参数化Python中可以创建4种函数: 1)、全局函数:定义模块,每个模块都...
  • 其实,Python是一种真正的动态语言,代码变量名本没有“声明”或“定义”的说法,语言本身也没有提供声明或定义变量的特殊语法(global除外)。对程序员来说,这是一种好处,也是一种危险,比如像下面这段代码:...
  • python如何将变量名作为字符串输出

    千次阅读 2020-05-13 17:51:59
    :return: string “”" for fi in reversed(inspect.stack()): names = [var_name for var_name, var_val in fi.frame.f_locals.items() if var_val is var] if len(names) > 0: return names[0] 作者:陽台上的瑪...
  • Python 调试打印变量名

    千次阅读 2018-12-11 21:45:56
    python 调试过程需要打印变量名称和打印变量值, 下面代码可以实现: def tiaoshi(name, locals): print(locals) for key in locals: if locals[key] == name: print(key) print(name) input() ...
  • Python中内建变量使用

    千次阅读 2013-07-24 10:31:57
    #专用下划线标示符 #python用下划线作为变量前缀和后缀指定特殊变量。稍后我们会发现, #对于程序来说,其中的有些变量是非常有用的,而其他的则是...#__xxx:类的私有变量名 #解读一段主程序代码: #/urs/bin/env
  • python如何获取变量的变量名

    千次阅读 2017-12-20 01:21:00
    假设现在存在一个值为1变量名为a的变量,如何通过一个函数获取该变量的变量名a? 上面这个需求来源于某群友的一个要求,希望能有一个这样的函数来方便打印。 这个需求很扯淡啊,为什么不用格式化输出?它回复到‘懒...
  • 1.变量名可以由字母,数字或者下划线组成 2.变量名只能以字母或者下划线开头 编程思路: 变量名的第一个字符是否为字母或下划线 如果是,继续判断 如果不是,报错 依次判断除了第一个字符之外的其他字符 判断是否为...
  • Python变量名

    千次阅读 2018-06-20 15:04:38
    变量有什么作用:可变的量,存储数据,避免重复代码。 例如: name = "Alex"...变量名  -- 字母  -- 数字  -- 下划线   变量只能是字母、数字、下划线的任意组合;  ps:  ...
  • for i in range(len(files)): print("ok") if files[i] == images[i] : output_dir =labels[i] output_dir_path = output_dir ...我这种方法没办法路径引用变量,请问有办法解决这个问题么?
  • 目的:传入函数/变量,得到相应的函数名/变量名 代码: import inspect, re # 提取变量或函数名 def varname(p): for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]: m = re.search(r'\...
  • python中如何判断一个变量的数据类型

    万次阅读 多人点赞 2011-04-02 19:16:00
    python中如何判断一个变量的数据类型
  • python中if语句

    千次阅读 2018-01-22 17:34:43
    编程时常需要检查一系列条件,并根据结果采取措施,在python中if语句能帮你检查程序当前状态,并给出结果采取措施。 下面是一个简单的实例,演示if语句正确处理特殊情况: cars=['audi','bmw','toyota'] for ...
  • python实现判断变量名是否合法

    千次阅读 2018-09-07 09:06:00
     判断变量名是否合法 变量名可以由字母,数字或者下划线组成; 变量名只能以字母或者下划线开头;  输入示例: hello@  输出示例:变量名不合法 源代码如下: while True: s = raw_input('请输入变量名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 191,104
精华内容 76,441
关键字:

在python中可以使用if作为变量名

python 订阅