首页 > 其他分享 >参数

参数

时间:2023-04-27 21:44:08浏览次数:32  
标签:__ name print 参数 test type hello

 

/*
目录: 参数
    一: 实参
        1 位置
        2 关键字
        3 原子化
    二: 形参
        1 无默认参数
        2 默认参数
            (a) 普通
            (b) 空
            (c) None
    三: 可变参数
    四: 可变命名参数
    五: 书写顺序
*/

 

 

 

 

一: 实参
  1 位置

# 位置
def test(title, msg):
    print(title, msg)

if __name__ == '__main__':
    test("hello", "demon")  # hello demon
    test("hello", "demon")  # demon hello

 

  2 关键字

# 关键字
def test(title, msg):
    print(title, msg)

if __name__ == '__main__':
    test("hello", msg="demon")          # hello demon
    test(title="hello", msg="demon")    # hello demon
    test(msg="demon", title="hello")    # hello demon
    test(title = "demon", "hello") # SyntaxError: positional argument follows keyword argument

 

  3 原子化

# 入参: 原子化
def user_info(*args):
    print(type(args), args)

if __name__ == '__main__':
    user_info(22, "TOM", [1, "abc"], {"name": "Jack"})  # <class 'tuple'> (22, 'TOM', [1, 'abc'], {'name': 'Jack'})

    l = [1, 2, 3]
    s = "abc"
    user_info(l, s)     # <class 'tuple'> ([1, 2, 3], 'abc')
    # # 入参: 原子化
    user_info(*l, s)    # <class 'tuple'> (1, 2, 3, 'abc')
    user_info(*l, *s)  # <class 'tuple'> (1, 2, 3, 'a', 'b', 'c')   

 

二: 形参
  1 无默认参数

def test(title):
    print(title)

if __name__ == '__main__':
    test("hello")   # hello

 

  2 默认参数
    (a) 普通

# 默认值
def test(title, msg="demon"):
    print(title, msg)

if __name__ == '__main__':
    test("hello")           # hello demon
    test("hello", "123")    # hello 123

 

    (b) 空

# 各数据类型初始化为空, 其布尔类型为false
if __name__ == '__main__':
    n = int()
    s = str()
    s2 = ""
    l = list()
    l2 = []
    d = dict()
    se3 = set()

    print(type(n), n, bool(n))              # <class 'int'> 0 False
    print(type(s), s, len(s), bool(s))      # <class 'str'>  0 False
    print(type(s2), s, len(s2), bool(s2))   # <class 'str'>  0 False

    print(type(l), l, len(l), bool(l))      # <class 'list'> [] 0 False
    print(type(l2), s, len(l2), bool(l2))   # <class 'list'>  0 False

    print(type(d), s, len(d), bool(d))          # <class 'dict'>  0 False
    print(type(d), s, len(d), bool(d))          # <class 'dict'>  0 False
    print(type(se3), s, len(se3), bool(se3))    # <class 'set'>  0 False

 

# 形参为空
def test(n = int(), s = str(), s1 = "", l = list()):
    print(type(n), n, bool(n))
    print(type(s), s, len(s), bool(s))
    print(type(s1), s, len(s1), bool(s1))
    print(type(l), l, len(l), bool(l))
    
if __name__ == '__main__':
    test()
'''
<class 'int'> 0 False
<class 'str'>  0 False
<class 'str'>  0 False
<class 'list'> [] 0 False
'''

 

    (c) None

# 形参为None
def test(args = None):
    print(type(args), args)

if __name__ == '__main__':
    test("a")               # <class 'str'> a
    test(12)                # <class 'int'> 12
    test([1, 2])            # <class 'list'> [1, 2]
    test({"name":"Tom"})    # <class 'dict'> {'name': 'Tom'}
    test(12, "a")   # TypeError: test() takes from 0 to 1 positional arguments but 2 were given

 


三: 可变参数

# 可变参数
def user_info(*args):
    print(type(args), args)


if __name__ == '__main__':
    user_info(22)                       # <class 'tuple'> (22,)
    user_info(22, "TOM")                # <class 'tuple'> (22, 'TOM')
    user_info(22, "TOM", [1, "abc"])    # <class 'tuple'> (22, 'TOM', [1, 'abc'])
    user_info(22, "TOM", [1, "abc"], {"name": "Jack"})  # <class 'tuple'> (22, 'TOM', [1, 'abc'], {'name': 'Jack'})

 

四: 可变命名参数

# 可变命名参数
def user_info(**kwargs):
    print(type(kwargs), kwargs) # <class 'dict'> {'name': 'Jack', 'age': 33}

if __name__ == '__main__':
    user_info(name="Jack", age=33)  # <class 'dict'> {'name': 'Jack', 'age': 33}

    d = {"name":"Tom", "age":11}    
    user_info(**d)  # <class 'dict'> {'name': 'Tom', 'age': 11}

 


五: 书写顺序

# 书写顺序
#   无默认参数; 默认参数; 可变参数; 可变命名参数
#   value; name=value; *args, **kwargs    

 

# 组合
def register(name, email, **kwargs):
    print("name:%s, age:%s, others:%s" %(name, email, kwargs))

if __name__ == '__main__':
    register("demon", "[email protected]", addr="BeiJin", job="software") 
    # name:demon, age:[email protected], others:{'addr': 'BeiJin', 'job': 'software'}

 

 

 

标签:__,name,print,参数,test,type,hello
From: https://www.cnblogs.com/huafan/p/17360303.html

相关文章

  • 【动手学深度学习】第五章笔记:层与块、参数管理、自定义层、读写文件、GPU
    为了更好的阅读体验,请点击这里由于本章内容比较少且以后很显然会经常回来翻,因此会写得比较详细。5.1层和块事实证明,研究讨论“比单个层大”但“比整个模型小”的组件更有价值。例如,在计算机视觉中广泛流行的ResNet-152架构就有数百层,这些层是由层组(groupsoflayers)的重复模......
  • WPF程序接收启动参数并启动
    新建一个WPF项目WpfApp1 创建一个新的启动类publicclassNewApp{publicstaticstring[]Args=newstring[]{};[STAThread]publicstaticvoidMain(string[]args){Args=args;Appapp=newApp();......
  • Python-字符串format方法指定参数
    一、字符串的format方法有几种指定参数的方式:(1)默认方式—传入的参数与{}一一对应(2)命名参数(3)未知参数{2}二、详细描述字符串的format方法如何格式化字符串:第一种方法:s1='Todayis{},thetemperatureis{}degrees.'print(s1.format('Saturday',24))第二种方法:s2='To......
  • 1 数组和切片、2 可变长参数 、3 maps
    目录1数组和切片1.1数组1.2切片2可变长参数3maps1数组和切片1.1数组#1定义,初始化,使用#2数组是值类型 -数字,字符串,布尔,数组,都是值类型,真正直接存数据-切片,map,指针引用类型,是个地址,指向了具体的值#3数组长度#4循环打印数组#5多纬数组#6数组......
  • jmeter参数化的6种方式
    1.用户自定义变量:添加“配置元件”->“用户定义的变量”。“名称”中输入变量名称,此处以登录为例,定义两个变量username和password。“值”中可以直接输入值,也可以通过Jmeter的函数__CSVRead,__StringFromFile从csv或dat文件中读取,还可以通过前缀加随机数的方法设置参数。 2.用......
  • Label。它的常用方法及其参数说明
    get():获取标签的文本内容。返回值为字符串类型。、my_label=Label(text='Hello,Kivy!')text=my_label.get()print(text)set(text):设置标签的文本内容。text参数为要设置的文本内容。my_label=Label()my_label.set('Hello,Kivy!')set_font_size(size):设置标......
  • Kivy中常用的菜单组件是PopupMenu。它的常用方法及其参数说明
    open(widget):在指定的控件下方打开弹出菜单。widget参数为要显示菜单的控件my_menu=PopupMenu()my_menu.open(my_button)dismiss():关闭弹出菜单。my_menu.dismiss()add_option(text,callback):向菜单中添加一个选项。text参数为选项的文本。callback参数为选......
  • TextInput。它的常用方法及其参数说明
    get():获取输入框的文本内容。返回值为字符串类型。my_text_input=TextInput()text=my_text_input.get()print(text)set(text):设置输入框的文本内容。text参数为要设置的文本内容my_text_input=TextInput()my_text_input.set('Hello,Kivy!')focus():将输入框设为焦......
  • kivy中按钮组件的所有方法使用和参数说明
    __init__(self,**kwargs):**kwargs:其他未指定参数的关键字参数。on_press(self):无参数。on_release(self):无参数。on_state(self,widget,value):widget:触发状态改变的按钮组件。value:按钮组件的新状态值。set_disabled(self,value):value:布尔值,表示按钮......
  • 不能将参数 1 从“const char [8]”转换为“LPCWSTR”
    VS2010:#include<winsock2.h>#include<stdio.h>#defineMasterPort999//定义监听端口999#pragmacomment(lib,"ws2_32.lib")intmain(){WSADATAWSADa;structsockaddr_inSockAddrIn;SOCKETCSocket,SSocket;intiAddrSize;PROCES......