精华内容
下载资源
问答
  • 公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!...
        

    640?wx_fmt=gif


    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!


    小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。


    废话不多说,开始今天的题目:


    问:说说Python种有几种字符串格式化?

    答:Python字符串格式化主要有两种方式:分别为占位符(%)和format方式 。文末还有2种要介绍,所以总共有4种 。

    其中,占位符(%)方式比较老,而format方式是比较先进的,目前两者共存。占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用的更加广泛。


    下面分别来说说这几种的区别:


    1、占位符(%)方式


    640?wx_fmt=png


    举2个例子来说明,其他的大家可以自己去试一下 。

    %d 格式整型

    age = 29
    print("my age is %d" %age)
    #my age is 29


    %s 格式字符串

    name = "makes"
    print("my name is %s" %name)
    #my name is makes


    2、format方式

    本文例子参考如下链接: 

    https://www.cnblogs.com/lvcm/p/8859225.html

    在Python3引入了一个新的字符串格式化的方法,并且随后支持了Python2.7。这个新的字符串格式化方法摆脱了%操作符并且使得字符串格式化的语法更规范了。现在时候通过调用字符串对象的.format() 方法进行格式化。


    位置映射

    640?wx_fmt=png

    实例(Python3.0+):

    print("{}:{}".format('192.168.0.100',8888))
    #192.168.0.100:8888


    关键字映射

    640?wx_fmt=png

    实例(Python3.0+):

    print("{server}{1}:{0}".format(8888,'192.168.1.100',server='Web Server Info :'))
    #Web Server Info :192.168.1.100:8888


    元素访问

    640?wx_fmt=png
    640?wx_fmt=png

    实例(Python3.0+):

    print("{0[0]}.{0[1]}".format(('baidu','com')))
    #baidu.com

    填充对齐

    ^、<、>分别是居中、左对齐、右对齐

    640?wx_fmt=png

    实例(打印九九乘法表):

    for i in range(1,10):
        a = 1
        while a <= i:
            print("{0}*{1}={2:0>2}".format(a,i,a*i),end="\t")
            a +=1
        print()
         
    """
    1*1=01
    1*2=02 2*2=04
    1*3=03 2*3=06 3*3=09
    1*4=04 2*4=08 3*4=12 4*4=16
    1*5=05 2*5=10 3*5=15 4*5=20 5*5=25
    1*6=06 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
    1*7=07 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
    1*8=08 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
    1*9=09 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
    """


    Python还有另外2种格式化的,大家也可以自己去了解一下,我这边简单提一下 。


    1、在Python 3.6 中添加了一个新的字符串格式化方法,被称为字面量格式化字符串或者“f-strings”。这个新的方法让你能够在字符串常量中嵌入Python表达式。


    >>> f'Hello, {name}!'
    'Hello, Bob!'


    2、最后一种,在Python里还有另一个字符串格式化工具:模板字符串。使用模板字符串的最佳的时机就是当你的程序需要处理由用户提供的输入内容时。
    Template()里面把字符串中某个值用设置变量${key}的方式先写好,然后在substitute()的方式把变量用其他值代替,就完成了字符串的替换。

    >>> from string import Template
    >>> a=Template('would it be the ${key1} when we meet in ${key2}')
    >>> a.substitute(key1='same',key2='heaven')
    'would it be the same when we meet in heaven'


    好了,说了这么多格式的方式,那到底要怎么选择呢?Python字符串格式化经验法则:如果你的格式化字符串是由用户提供的,那么就是用模板字符串避免安全问题。不然如果是Python 3.6+的话,就使用字符串插值/f-Strings,如果不是就使用str.format进行字符串格式化


    如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!














    关注小猿公众号,每天学习一道题


    640?wx_fmt=jpeg

    展开全文
  • Python传入参数的几种方法

    万次阅读 多人点赞 2018-03-20 18:04:13
    Python传入参数的方法:位置参数、默认参数、可变参数、关键字参数、和命名关键字参数、以及各种参数调用的组合 写在前面 Python唯一支持的参数传递方式是『共享传参』(call by sharing) 多数面向对象...

    Python传入参数的方法有:位置参数、默认参数、可变参数、关键字参数、和命名关键字参数、以及各种参数调用的组合


    写在前面

    Python唯一支持的参数传递方式是『共享传参』(call by sharing)

    多数面向对象语言都采用这一模式,包括Ruby、Smalltalk和Java(Java的引用类型是这样,基本类型按值传递)

    *共享传参是指函数的各个形式参数获得实参中各个引用的副本;也就是说,函数内部的形参是实参的别名(alias)

    这种方案的结果是,函数可能会修改作为参数传入的可变对象,但是无法修改那些对象的标识(即不能把一个对象替换为另一个对象)


    位置参数

    位置参数是最简单的传入参数的方式,在其它的语言中也常常被使用

    演示一:

    def func(a, b):
    	print(a+b)
    
    func(1, 2)	#3
    

    演示二:

    def power(x, n):
    	s = 1
    	while(n > 0):
    		n -= 1
    		s *= n
    	return s
    
    power(2, 3)	#8
    

    默认参数

    默认参数就是在调用函数的时候使用一些包含默认值的参数

    def power(x, n=2):
    	s = 1
    	while(n > 0):
    		n -= 1
    		s *= n
    	reutrn s
    
    power(3)	#9
    power(2, 3)	#8
    

    定义默认参数要牢记一点:默认参数必须指向不变对象!

    # 以下这个函数如果被多次调用会在默认添加多个END字符串
    def add_end(l = []):
    	l.append('END')
    	return l
    
    # 为了避免这个问题,应该把传入的默认参数设置为不可变的
    def add_end(l = None):
    	l = []
    	l.append('END')
    	return l
    

    可变参数

    可变参数就是允许在调用参数的时候传入多个(≥0个)参数(类似于列表、字典)

    #传入一个列表,严格地说这不是可变参数
    def calc(l):
    	sum = 0
    	for n in l:
    		sum += n
    	return sum
    
    >>> calc([1,2,3])
    7
    
    # 这才是可变参数,虽然在使用上和列表没有区别,但是参数nums接收到的是一个tuple(这些参数在传入时被自动组组装为一个元祖)
    def calc(*nums):
    	sum = 0
    	for n in nums:
    		sum += n
    	return sum
    
    >>> calc(1,2,3)
    7
    
    >>> my_ls = [1,2,3]
    >>> calc(*my_ls)
    7
    

    关键字参数

    可变参数允许传入0个~多个参数,而关键字参数允许在调用时以字典形式传入0个或多个参数(注意区别,一个是字典一个是列表);在传递参数时用等号(=)连接键和值

    # 用两个星号表示关键字参数
    def person_info(name, age, **kw):
    	print("name", name, "age", age, "other", kw)
    
    >>> person_info("Xiaoming", 12)
    name Xiaoming age 12 other{}
    >>> person_info("Dahuang", 35, city = "Beijing")
    name Dahuang age 35 other {'city':'Beijing'}
    

    命名关键字参数

    命名关键字参数在关键字参数的基础上限制传入的的关键字的变量名

    和普通关键字参数不同,命名关键字参数需要一个用来区分的分隔符*,它后面的参数被认为是命名关键字参数

    # 这里星号分割符后面的city、job是命名关键字参数
    person_info(name, age, *, city, job):
    	print(name, age, city, job)
    
    >>> person_info("Alex", 17, city = "Beijing", job = "Engineer")
    Alex 17 Beijing Engineer	#看来这里不再被自动组装为字典
    

    不过也有例外,如果参数中已经有一个可变参数的话,前面讲的星号分割符就不要写了(其实星号是写给Python解释器看的,如果一个星号也没有的话就无法区分命名关键字参数和位置参数了,而如果有一个星号即使来自变长参数就可以区分开来)

    # args是变长参数,而city和job是命名关键字参数
    person_info(name, age, *args, city, job):
    	print(name, age, args, city)
    
    >>> person_info("Liqiang", 43, "balabala", city = "Wuhan", job = "Coder")
    Liqiang 43 balabala Wuhan Coder
    

    参数组合

    总结一下,在Python中一种可以使用5中传递参数的方式(位置参数、默认参数、变长参数、关键字参数、命名关键字参数)

    注意,这些参数在书写时要遵循一定的顺序即:位置参数、默认参数、变长参数、关键字参数、命名关键字参数(和本文的行文顺序一致)

    def f1(a, b, c=0, *args, **kw):
    	print("a = ", a, "b = ", b, "args = ", args, "kw = ",kw)
    def f2(a, b, c=0, *, d, **kw):
    	print("a = ", a, "b = ", b, "c = ", c, "d = ", d, "kw = ", kw)
    
    >>> f1(1, 2)
    a = 1 b = 2 c = 0 args =() kw = {}
    >>> f1(1, 2, c=3)
    a = 1 b = 2 c = 3 args = () kw = {}
    >>> f1(1, 2, 3, 'a', 'b')
    a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
    >>> f1(1, 2, 3, 'a', 'b', x = 99)
    a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x':99}
    >>> f2(1, 2, d = 99, ext = None)
    a = 1 b =2 c = 0 d = 99 kw = {'ext':None}
    

    写在后面

    关于Python参数传递,有以下几点提请注意:

    1)参数的传递是通过自动将对象赋值给本地变量名来实现的
    函数参数在实际中只是Python赋值的另一个实例而已,因为引用可以是以指针的形式来实现的,所有的参数实际上都是通过指针进行传递的,作为参数被传递的对象从来不自动拷贝

    2)在函数内部的参数名的赋值不会影响调用者
    在函数运行时,在函数头部的参数名时一个新的、本地的变量名,这个变量名是在函数的本地作用域内的,函数参数名和调用者作用域中的变量是没有区别的

    3)改变函数的可变对象参数的值也许会对调用者有影响
    换句话说,因为参数是简单地赋值给传入的对象,函数就能够就地改变传入的可变对象,因此其结果会影响调用者;可变参数对函数来说可以做输入和输出的

    Python的通过赋值进行传递的机制与C++的引用参数选项不完全相同,但是实际中,它与C语言的参数传递模型相当类似:

    1)不可变参数“通过值”进行传递
    像整数和字符串这样的对象是不可变对象,它们通过对象引用而不是拷贝进行传递的,但是因为无论如何都不可能在原处改变不可变对象,实际的效果就很像创建了一份拷贝

    2)可变对象是通过“指针”进行传递的
    列表和字典这样的对象也是通过对象引用进行传递的,这一点与C语言使用指针传递数组很相似,可变对象能够在函数内部进行原处的改变,这一点和C数组很像

    这里写图片描述

    这里写图片描述

    总而言之,理解Python的变量、函数的关键就是理解『绑定』的概念——绑定就是绑定对象,理解了这一点就好办了(完)。

    展开全文
  • 如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,今天要说的是说说Python有几种数据类型?问:说说 Python有几种数据类型?答:Python 中主要有8种数据类型:number(数字)、...

    【摘要】今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,今天要说的是说说Python中有几种数据类型?

    问:说说 Python 中有几种数据类型?

    答:Python 中主要有8种数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、dict(字典)、set(集合)、Boolean(布尔值)、None(空值)。

    其中Python有六个标准的数据类型:

    1、字符串

    字符串的声明有三种方式:单引号、双引号和三引号(包括三个单引号或三个双引号)

    >>> str1 = "hello world"

    >>> str2 = "hello world"

    >>> str3 = """hello world"""

    >>> str4 = """hello world"""

    >>> print str1hello world

    >>> print str2hello world

    >>> print str3hello world

    >>> print str4hello world

    2、数字

    Python3 支持三种不同的数值类型:

    整型(int): 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。

    浮点型(float): 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示 。

    复数( (complex)) : 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

    3、列表

    列表是一种可修改的集合类型,其元素可以是数字、string等基本类型,也可以是列表、元组、字典等集合对象,甚至可以是自定义的类型。其定义方式如下:

    >>> nums = [1,2,3,4]

    >>> type(nums)>>> print nums[1, 2, 3, 4]

    >>> strs = ["hello","world"]

    >>> print strs["hello", "world"]

    >>> lst = [1,"hello",False,nums,strs]

    >>> type(lst)

    >>> print lst[1, "hello", False, [1, 2, 3, 4], ["hello", "world"]]

    4、元组

    元组类型和列表一样,也是一种序列,与列表不同的是,元组是不可修改的。元组的声明如下:

    lst = (0,1,2,2,2)lst1=("hello",)lst2 = ("hello")print type(lst1) #只有一个元素的情况下后面要加逗号 否则就是str类型print type(lst2) #

    5、字典

    字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

    >>>dict = {"a": 1, "b": 2, "b": "3"}

    >>> dict["b"]"3"

    >>> dict{"a": 1, "b": "3"}

    6、集合

    集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合。

    注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。创建格式:

    a={"a","b","c","d"}b=set("abcdefabcd")c=set({"a":1,"b":2})d=set(["a","b","c","a"])

    print(a,type(a))

    print(b,type(b))

    print(c,type(c))

    print(d,type(d))#运行结果{"c", "d", "b", "a"} {"f", "e", "b", "c", "d", "a"} {"b", "a"} {"c", "b", "a"}

    以上就是今天的全部内容了,如果面试的时候有人问你“说说Python中有几种数据类型?”这个问题,小编相信大家应该不会再慌了,如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!环球网校的小编在这里祝大家python相关工作面试顺利。

    展开全文
  • Python几种实现

    2017-07-03 12:07:43
    Python几种实现Python是一种编程语言. 本身可以多种实现, 个叫CPython的实现用的最多. 叫CPython是用于区别于Python语言本身. CPython是可以执行的. Python是语言的定义, 规范.CPython是官方的实现, 就是从 ...

    python3手册的目录

    Python的几种实现

    Python是一种编程语言. 本身可以有多种实现, 其中CPython实现用的最多.

    叫做CPython是用于区别于Python语言本身. CPython是可以执行的. Python是语言的定义, 规范.

    CPython是官方的实现, 就是从 python.org下载的那个. 其他的还有 Jython, IronPython 和 PyPy.

    CPython

    CPython是使用c语言来实现的. CPython将你写的Python代码编译成字节码(bytecode)然后解释执行字节码.

    CPython是官方的, 也就是Python新的特性首先在CPython得到实现和支持. 其他的Python实现随后支持.

    Cython

    CPython只是把Python代码转成字节码, 没有转成c代码. Cython语言是Python语言的超集, 对Python语言稍微做了一些扩展.

    Cython编译器将Cython语言转成c/c++代码. 可以将Cython代码编译成C扩展, 放到CPython中使用

    Jython, IronPython, PyPy

    Jython, IronPython, PyPy 这3个分别是Java, C# 和 RPython实现的. RPython是Python语言的子集. Jython将代码编译成Java的字节码, 运行到JVM中. IronPython 是运行在微软的CLR. PyPy 使用了Python语言的子集, 但执行Python比CPython还快.

    展开全文
  • Python几种文件类型

    千次阅读 2019-04-25 21:46:58
    Python有以下几种类型的文件: py:Python控制台程序的源代码文件 pyw:Python带用户界面的源代码文件 pyx:Python包源文件 pyc:Python字节码文件 pyo:Python优化后的字节码文件 pyd:Python的库文件...
  • 常见的方式如下几种: 1 . import >>> import sys >>> sys.path ['', 'C:\\Python34\\Lib\\idlelib', 'C:\\Windows\\system32\\python34.zip', 'C:\\Python34\\DLLs', 'C:\\Python34\\lib', 'C:\\Python34', 'C:\\...
  • Django: Python Web应用开发框架Django 应该是最出名的Python框架,GAE甚至Erlang都框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动...
  • python几种拷贝方式

    2020-07-17 15:25:09
    python几种拷贝方式 这些天遇到高手问了我几个python比较深度的问题:第一个是python的怎么把创建的对象内存给释放掉,本章不做总结,再者就是这个python的拷贝方式,这里总结分为3种,咱们先来说说这个: 我们...
  • Python数据类型有几种

    万次阅读 2019-01-22 18:14:01
    数据类型是每编程语言必备属性,只有给数据赋予明确的数据类型,计算机才能对数据进行处理运算,因此,正确使用数据类型是十分必要的,不同的语言,数据类型类似,但具体表示方法有所不同,以下是Python编程常用的...
  • python 整数反转有几种解法 利用余数除法 注意python中的区别,//表示整除,/是正常除。 class Solution: def reverse(self, x: int) -> int: res = 0 if x == 0: return 0 y = abs(x) while y != 0: ...
  • python就是是一面向对象的解释型计算机程序设计语言,具有丰富和强大的库,语言因其简洁性、易读性以及可扩展性受到欢迎。...Python有不同的形式,我们常说的Python其实是Cpython,除此之外,还包括Jython...
  • Python几种实现方式

    千次阅读 2017-03-30 13:18:53
    Python自身作为一门编程语言,它多种实现。这里的实现指的是符合Python语言规范的Python解释程序以及标准库等。这些实现虽然实现的是同一语言,但是彼此之间,特别是与CPython之间还是有些差别的。 下面分别列...
  • python几种数据类型

    千次阅读 2013-08-25 08:52:49
    python的数据类型很多种,这里我撇去c语言常见的几种比如int bool double,只谈list、tuple(元组)、set、dict。 List (列表):  我们提到列表就应该想到c语言里的数组,因为列表也是使用’[]‘的,但不同于...
  • 查了网上若干资料,很多方法(直接用Jython,etc.),亲测两最有效的方法在此分享一下。 1.使用Runtime.getRuntime()执行脚本文件 该方法可以运行含有python第三方库的程序 先建立python脚本文件 demo.py...
  • 往期面试题:谈谈对 Python 和其他语言的区别?说说 Python 解释器种类以及特点?说说4常用编码的区别?说说Python面向对象三大特性?废话不多说,开始今天的题目:问:说说...
  • python退出循环有几种方法

    千次阅读 2019-10-28 11:05:14
    1、退出循环有几种方法 for循环通过迭代对象退出。由于while循环通常不知道循环的次数,所以对于while循环,它的几种应用场景导致退出条件设置的不同。 (1)可使用while循环让程序在用户在愿意的时不断运行。 在...
  • 一、Python3几种数据类型?分别列出:有序类型、无序类型、可变类型、不可变类型 (1)python内置6种对象类型: Number 数值型 int 整型 不可变 float 浮点...
  • python多线程有几种实现方法

    千次阅读 2015-05-26 11:26:19
    python多线程有几种实现方法,都是什么?   目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用...
  • Python 几种网页解析器 正则表达式–模糊匹配 - html.parser–结构化解析( 就是一个DOM 树结构) - BeautifulSoup支持(html.parser, lxml)–结构化解析 - lxml–结构化解析 - 下载网页方法 一般...
  • 学习python的时候,发现写代码都要在开始一行加上# coding=utf-8,不然在pycharm里面中文注释或者代码里面中文的话编辑代码就会报错,关于写python代码得在第一行声明编码格式的原因,上网搜索了一下: ...
  • Python几种主流框架

    万次阅读 多人点赞 2019-01-22 09:29:39
    从GitHub中整理出的15个...Django 应该是最出名的Python框架,GAE甚至Erlang都框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,458
精华内容 3,783
关键字:

python有几种

python 订阅