Python Day1 continue2 作业

Python - 定义函数 def 后面的 ->,:表示的含义

-> 常常出现在python函数定义的函数名后面,为函数添加元数据,描述函数返回的类型。
表示参数的类型建议符
示例
def add(x:int, y:int) ->bool:
	if(x>y):
		return True
	else:
		return False

这里,表明了函数的参数传入为int类型,输出的类型为bool类型。

python中定义函数时,self怎么理解

在定义方法的时候有一个self参数,在所有的方法声明中都要用到这个参数,这个参数代表实例对象本身,当你用实例调用方法的时候,由解释器自动的把实例对象本身悄悄的传递给方法,不需要你自己传递self进来,例如有一个带有两个参数的方法,你所有调用只需要传递进来二个参数。
例如这两个文件:

class A:
    def __init__(self,a,b):
        self.a=a+1
        self.b=b+1
test=A(1,2)
print (test.a,test.b)

2 3

关于定义__init__和不定义的一点小区别:

  • 非init的函数需要返回值
  • 实例化的时候分两步调用定义的非init函数,先实例化,再传参

例1:

class A:
    def abc(self,a,b):
        self.a=a+1
        self.b=b+1
        return self.a,self.b
test=A()
x,y = test.abc(1,2)
print (x,y)

2 3

例2:

class A:
    def __init__(self,a,b):
        self.a=a+1
        self.b=b+1
        
test=A(6,7)
print (test.a,test.b)

7 8

leetcode 习题 136. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
尝试使用位运算解决此题。

"""
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]
Output file
result1: 1
result2: 4
"""
"""
A^B^A: = A^A^B = B
可以用异或
"""
#导入List包
from typing import List
#这里有个for循环,将列表中数字逐个取出
class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        tmp = 0
        for num in nums:
            tmp = tmp^num
        return tmp
#类实例化
test = Solution()
#调用类的函数,并将返回值赋给y
y = test.singleNumber([4,1,2,1,2])
print(y)

4

参考资料:
https://blog.csdn.net/qq_40913465/article/details/108407867
https://www.cnpython.com/qa/39316
https://blog.csdn.net/liyongo/article/details/107523032

猜你喜欢

转载自blog.csdn.net/weixin_48760912/article/details/114046623