入门 Python (二)

简介: 入门 Python (二)

元组#


元组 Tuple 和列表类似,但是元组的元素 不能修改

通常使用 元组 存储不同类型的数据

元组表示多个元素组成的序列

下标从0开始

用户存储一串信息, 数据之间使用 逗号 分隔


  • 定义元组


info_tuple = ("zhangsan",18,1.75)
print(type(info_tuple)) # <class 'tuple'>


  • 取值


print(info_tuple[0])
print(info_tuple[1])
print(info_tuple[2])
# print(info_tuple[3])#tuple index out of range


  • 取索引


print(info_tuple.index("zhangsan")) # 0


  • 统计计数


print(info_tuple.count("zhangsan")) # 1


  • 定义空元组,一般是不定义空元组的,但是没意义,因为不能再修改


empty_tuple = ()
print(type(empty_tuple))#<class 'tuple'>


  • 定义一个元素的元组


single_touble1 = (5) # 解释器会忽略两个小括号
print(type(single_touble1))# <class 'int'>   被解释器解释成了int类型
single_touble2 = (5,) # 多加上一个逗号
print(type(single_touble2))#<class 'tuple'>


  • 元组的应用场景
  • 作为入参: 可以使得函数一次性接受多个参数
  • 让列表不可变,保护数据的安全
  • 作为返回值: 可以使函数一次性返回多个值
  • 格式化字符串, 在print函数中,格式化字符串时, 格式化字符串后面的() 本质上就是一个元组


例:


print("年龄: %d   姓名:%s"%(123,"小明"))
info_tuple = ("zhangsan",18,1.75)
print(type(info_tuple)) # <class 'tuple'>
info_str="姓名:%s  年龄: %d  身高%.2f "% info_tuple
print(info_str)


  • 列表转元组


my_list = [1,3,4,5]
my_list = tuple(my_list)
print(type(my_list)) # my_list


  • 函数返回元组


def mea():
    a=1
    b=2
    return (a,b)
# 接受
result = mea()
# 使用
print(result[0])
print(result[1])
# 也可以这样接收, 注意, 变量的格式和元组的数保持一致
gl_a, gl_b = mea()


字典#


字典是 无序对象 的集合 类似java中的 map,或者说是java中的一个对象

说它是无序,使用print输出时,每次的顺序不唯一

因为我们只关心通过key 取出 保存的数据,而不关心存储的顺序

字典使用{}定义

字典使用键值对存储数据, 键值对使用 逗号分隔

key 是索引,并且是 不可变类型的变量才能当key (列表,字典是可变类型,不能当成key)

value 是数据

键和值之间使用 : 冒号分隔

键是唯一的

值任意数据类型


* 定义字典


person={"name":"张三","age":23}


  • 取值


# 取值
print(person["name"])# 入参位置的name是key
# print(xiaoming["name123"])# KeyError: 'name123'   key不存在,程序会报错


  • 添加修改


# 添加/修改, 如果key存在了, 就是修改, key不存在就是添加
person["height"]=1.78
print(person)


  • 删除


person.pop("age")
print(person)


  • 统计键值对的数量


print(len(person))


  • 合并字典


new_dir={"class":"大一"}
person.update(new_dir) # 如果被合并的字典中包含原有的键值对, 会覆盖旧值
print(person)


  • 清空字典xiaoming


xiaoming.clear()
print(xiaoming)


  • 遍历


for k in person:
    print(" value = %s "%person[k])


  • 字典和列表搭配使用


将多个字典存入一个列表中,然后遍历列表对实现对字典批量处理的动作
list = [
        {},
        {},
        {}
        ]


if分支判断语句#


if 要顶格写
if 条件1:
    XXX
elif ()or()or():
    XXX
else:
    XXX
严格控制缩进, tab 和 空格不能混用,容易乱


逻辑运算符#


与  and
或  or
非  not
条件1 and 条件2
条件1 or 条件2
对条件取反
not 条件1
not 条件2


循环#


  • for循环


for 变量 in 集合:
    XXX
else:
    XXX


  • while循环


i=0
while i<5:
    print("i= %d"%i)
    #i=i+1
    i+=1


函数#


格式如下


def 函数名():
    XXX
    XXX
def 函数名():
    XXX
    XXX
    return XXX


内置函数#


  • 随机数


import random
n = random.randint(1,5)# 1 <= n <= 5
m = random.randint(5,5)# n = 5
# s = random.randint(10,5)# 第一个数大于第二个数则保存
print("age== %d "%n)


缺省参数#


  • 缺省参数, 简化人们的编码


gl_list=[5,126,7]
gl_list.sort()
print(gl_list) # 默认正序
gl_list.sort(reverse=True) # 缺省参数位置,可以设置逆序
print(gl_list)


  • 指定缺省参数的默认值


def print_info(name,gender=True):
    default_gender="男生"
    if not gender:
        default_gender = "女生"
    print("%s 是 %s"%(name,default_gender))
print_info("小明")
print_info("小明",False)


注意事项:缺省参数必须保证它出现在 !!! 参数列表的末尾 !!!


  • 如何调用含有多个参数, 如果有多个参数的话, 中间位置的参数最好也设置上默认值


def print_info(name,age="",gender=True):
    default_gender="男生"
    if not gender:
        default_gender = "女生"
    print("%s 是 %s"%(name,default_gender))
print_info("小明")
print_info("小明",gender=False)


  • 多值参数

在参数名前添加一个 * 可以接收元组

在参数名前添加两个 * 可以接收字典

习惯用下面的方式命名:

  • *args :存放元组
  • **kw :存放字典数据


def demo(num,*nums,**person):
    print(num)
    print(nums)
    print(person)
demo(1)
'''
1
()
{}
'''
demo(1,23,4,5,6)
'''
1
(23, 4, 5, 6)
{}
'''
demo(1,23,4,5,6,name="张三",age=18)
'''
1
(23, 4, 5, 6)
{'name': '张三', 'age': 18}
'''
# 对比去除* 的写法, 其实用户在使用时变麻烦了,多增加了一个小括号
def print_info1(name):
    print(name)
print_info1((1,2,3,4))#(1, 2, 3, 4)


元组和字段的拆包#


def demo(*args,**kwargs):
    print(args)
    print(kwargs)
gl_nums=(1,2,3)
gl_dir={"name":"李四","age":12}
demo(gl_nums,gl_dir)
'''
 下面的运行结果其实是差强人意的, 需要进行拆包
((1, 2, 3), {'name': '李四', 'age': 12})
{}
'''
# 不拆包,直接调用
demo(1,2,3,name="李四",age=123)
'''
(1, 2, 3)
{'name': '李四', 'age': 123}
'''
# 拆包
demo(*gl_nums,**gl_dir)
'''
(1, 2, 3)
{'name': '李四', 'age': 12}
'''


相关文章
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
1天前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
11 2
|
6天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
1月前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
40 7
|
1月前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
45 5
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
82 3
|
1月前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。
|
2月前
|
设计模式 缓存 开发者
Python中的装饰器:从入门到实践####
本文深入探讨了Python中强大的元编程工具——装饰器,它能够以简洁优雅的方式扩展函数或方法的功能。通过具体实例和逐步解析,文章不仅介绍了装饰器的基本原理、常见用法及高级应用,还揭示了其背后的设计理念与实现机制,旨在帮助读者从理论到实战全面掌握这一技术,提升代码的可读性、可维护性和复用性。 ####