• Python学习笔记——基本类型、函数、输入和输出


    • 食用说明:本笔记适用于有一定编程基础的伙伴们。希望有助于各位!

    基础类型

    常用的简单类型有str,float,int,bool等,常见的复杂数据类型有function,type,list,tuple,dict,set等。具体如下:

    1. # 全部变量类型
    2. num1 = 0
    3. print(type(num1), num1)
    4. num2 = 1.0
    5. print(type(num2), num2)
    6. str1 = 'hello'
    7. print(type(str1), str1)
    8. # 转义标志
    9. str1 = '\'hello\''
    10. # 多行定义
    11. str1 = """
    12. hello,
    13. friend
    14. """
    15. bool1 = True
    16. print(type(bool1), bool1)
    17. none1 = None
    18. print(type(none1), none1)
    19. def func1():
    20. print('hello')
    21. print(type(func1))
    22. class Person:
    23. def __init__(self, name, age):
    24. self.name = name
    25. self.age = age
    26. def greet(self):
    27. print(f"hello, {self.name}")
    28. print(type(Person))
    29. # 列表的相同类型元素定义
    30. list1 = [1, 2, 3, 4, 5]
    31. print(type(list1), list1)
    32. # 列表的不同类型元素定义
    33. list2 = [1, 2, True, [1, 2]]
    34. print(type(list2), list2)
    35. # 元组,相同类型元素
    36. tuple1 = (1, 2, 3, 4, 5)
    37. print(type(tuple1), tuple1)
    38. # 元组,不同类型元素
    39. tuple2 = (1, (1, 2), [1, 2], True)
    40. print(type(tuple2), tuple2)
    41. # 字典类型
    42. dict1 = {'name': '张三', 'age': 18}
    43. print(type(dict1), dict1)
    44. # 集合类型
    45. set1 = {1, 2, 3}
    46. print(type(set1), set1)
    47. # 集合类型,不同类型元素
    48. set2 = {1, True, '张三', 1.2, func1}
    49. print(type(set2), set2)
    • 元组和列表相似,但无法修改。
    • 集合只能加入简单数据,无法加入可迭代数据,如字典类型,列表类型,集合类型以及元组类型。
    • 以上包含了大部分常用类型的定义和简单使用,可自行尝试。
    函数(方法)定义

    常规的函数定义结构如下:

    从上图可知:

    • 函数的声明需要使用def关键字。
    • 函数必须拥有一个函数名,且包含参数括号,用于声明。

    函数定义可以使用类型定义,具体如下:

    1. def func1(a: float | int, b: int) -> float:
    2. return a + b

    这一类型定义的方法与typescript类似,当然也有一定区别:

    • 定义参数类型时使用‘:’作为引导符,使用‘->’作为返回值引导符
    • 当出现多个参数类型定义时,可以使用‘|’作为分割符

    另外参数如果为方法,同样可以用到类型定义,具体如下:

    1. def func2(a: float, b: float, cb: callable) -> float:
    2. cb(a, b)
    3. return a + b
    4. func2(1, 2, func1)
     多返回值接收

    有些情况下,方法会返回多个返回值,我们可以:

    1. def func(*args):
    2. return args
    3. list1 = func(1, 2, 3, 4, 5)
    4. print(sorted(list1, reverse=True))
    5. >>>[5, 4, 3, 2, 1]
    •  多返回值是以元组形式返回的,当然你也可以用多个参数去接受它们
    1. x, y = func(1, 2)
    2. print(x, y)
    •  需要注意的是函数的参数返回大于接收这些参数的变量个数时,会报错
    参数的特殊传递

    参数默认以调用时参数的顺序传递,而关键字参数可以无序传递,具体如下:

    • python也具备默认参数的概念,需在形参处添加: 
    1. def func(a=1, *args):
    2. return args
    不定长参数传递 
    1. def func(*args):
    2. return args
    3. list1 = func(1, 2, 3, 4, 5)
    4. print(sorted(list1, reverse=True))
    5. >>>[5, 4, 3, 2, 1]
    • 在上处代码中可以看到参数前面多了一个‘*’,这就是不定长参数的定义
    • 如果通过‘**’定义的参数,传递的必须是关键字参数,这种传递方式也叫关键字不定长,具体如下 :
    1. def add(a, b, **numbers):
    2. """
    3. 用于多个数相加
    4. :param a: 加数
    5. :param b: 被加数
    6. :param numbers: 被加数额外参数
    7. :return: 返回累加结果
    8. """
    9. sum1 = a + b
    10. for key, value in numbers.items():
    11. sum1 += value
    12. return sum1
    13. print(add(1, 2, arg1=1, arg2=2, arg3=3))
    •  上处代码定义中,我们在调用时使用了关键字传参
    lambda函数

    在某些情况下,我们需要写一下简单的函数逻辑,即可使用lambda:

    1. def add(a, b):
    2. return a + b
    3. add1 = lambda a, b: (a + b)
    4. print(add1(1, 2))
    5. print(add(1, 2))
    •  lambda更加简洁,def方法具名可复用
    输入和输出

    任何语言都有其独特的输入和输出语句,python固然拥有:

    1. username = input()
    2. password = input()
    3. print(f'your username:{username},your password:{password}!')
    • input()是一个控制台输入方法,用于接受用户输入
    • print()是一个控制台输出方法,用于输出特定内容
    • 使用f前置可以让输出字串格式化,格式化标志是{},在花括号内部的即变量

    同时,输出格式化字串的方法不止一种,下面的方法也是不错的选择:

    1. username = input()
    2. password = input()
    3. print(f'your username:{username},your password:{password}!')
    4. print('your username:%s,your password:%s!' % (username, password))
    • 使用%格式化标志用于替换格式化字串,通常%s是字串格式化,而跟随字串之后的就是实际变量,也使用%隔开。
    • %格式方式可以定义字串的样式,如字宽,精度控制等,如下:
    1. name = "Polaris"
    2. age = 12.0178
    3. # 格式化方式,浮点数格式化m.n,m是宽度,n是小数精度控制(四舍五入)
    4. words = "hello, %s, age: %10.4f" % (name, age)
  • 相关阅读:
    全链路资金订单仓位诊断模型设计
    两种解法解决LCR 008. 长度最小的子数组【C++】
    rust注释
    React18入门(第五篇)——React Router详细使用教程
    昇腾910使用记录
    xen-uart
    Redis缓存(笔记一:缓存介绍和数据库启动)
    对信息系统生命周期各阶段进行风险评估的要点汇总
    性能测试入门
    视频汇聚/视频云存储/视频监控管理平台EasyCVR启动时打印starting server:listen tcp,该如何解决?
  • 原文地址:https://blog.csdn.net/HAC_SOUL/article/details/133901700