返回顶部
首页 > 资讯 > 后端开发 > Python >hand first python 选读
  • 143
分享到

hand first python 选读

选读handpython 2023-01-30 22:01:19 143人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

列表(list) 基本操作 比如说我要整理一个近期热映的电影列表: movies = ["venom", "My Neighbor Totor", "Aquaman"] print(movies) # ['venom', 'My Neig

列表(list)

基本操作

比如说我要整理一个近期热映的电影列表:

movies = ["venom", "My Neighbor Totor", "Aquaman"]
print(movies)
# ['venom', 'My Neighbor Totor', 'Aquaman']
print(len(movies))
# 3
print(movies[1])
# My Neighbor Totor

列表很像数组,但功能超越数组。列表都是从0开始的,python中列表无需事先声明类型。

从列表后面加上一个新的元素,比如说加个“无名之辈”,是append方法。

movies.append('A Cool Fish')
print(movies)
# ['venom', 'My Neighbor Totor', 'Aquaman','A Cool Fish']

删除列表最后一个元素:pop方法。

movies.pop()
print(movies)
# ['venom', 'My Neighbor Totor']

两个列表相衔接,用的是extend方法。

movies.extend(['Dying To Survive', 'Detective Conan'])
print(movies)
# ['venom', 'My Neighbor Totor', 'Aquaman', 'Dying To Survive', 'Detective Conan']

我想在某个条件下删除一个元素,同时加上一个元素,涉及removeinsert方法。

movies.remove('venom')
print(movies)
# ['My Neighbor Totor', 'Aquaman']
movies.insert(len(movies),'venom')
print(movies)
# ['My Neighbor Totor', 'Aquaman','venom']

Python中列表可以放任何类型的数据。

循环

处理列表需要各种迭代方法。是时候用for...in循环了

for movie in movies:
    print(movie)

# venom
# My Neighbor Totor
# Aquaman

同理while循环也是可以的

count=0
while count<len(movies):
  print(movies[count])
  count+=1

一般都推荐for循环

列表当然也能嵌套,我们可以用isinstance方法检测之:

movies = ["venom", ["My Neighbor Totor", "Aquaman"]]
print(isinstance(movies,list))
# True

if else

如果我想把这个嵌套列表单独打印出来,可以这么操作

movies = ["venom", ["My Neighbor Totor", "Aquaman"]]
for movie in movies:
    if isinstance(movie, list):
        for _movie in movie:
            print(_movie)
    else:
        print(movie)
# venom
# My Neighbor Totor
# Aquaman

函数与递归:多层嵌套的扁平化

给这个列表再加一层:

movies = ["venom", ["My Neighbor Totor", ["Aquaman"]]]

用上节来处理多层嵌套,会导致大量重复而不优雅的代码。

首先使用函数让代码更加优雅:

movies = ["venom", ["My Neighbor Totor", ["Aquaman"]]]
def flatten(_list):
    if(isinstance(_list, list)):
        for _item in _list:
            flatten(_item)
    else:
        print(_list)
    
flatten(movies)

为了巩固所学:再举一个通过递归生成斐波拉契数列第N项的例子:

斐波那契数列(Fibonacci sequence),指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(3)=2,F(n)=F(n-1)+F(n-2)(n>=4,n∈N*)

def fib(n):
    if n < 1:
        return 'error'
    if n == 1 or n == 2:
        return 1
    else:
        return fib(n-1)+fib(n-2)

print(fib(6))
# 8

虽然很简洁,但是n>100就报错了。因为python的递归支持100层

函数

模块化开发

把上一章的flatten函数单独用base.py存起来,它就打包为一个模块。

除了之前提到的,用#注释,还可以用三重"""作为python的注释。

再同一个命名文件夹下重新创建一个app.py文件:

import base as util

movies = ["venom", ["My Neighbor Totor", ["Aquaman"]]]
print(util.flatten(movies))

# 预期结果

列表更多的内置方法

学习以下内置的方法(BIF)

  • list() :工厂函数,创建一个新的列表
  • next() : 返回一个迭代结构(如列表)中的下一项
  • id() :返回一个数据对象的唯一标识(内存地址)
>>> id(b)
140588731085608
  • int() :将一个字符串'5'转化为5
  • range() :返回一个迭代器,根据需要生成一个指定范围的数字
>>>range(10)        # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11)     # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 10, 3)  # 步长为 3 , 迭代终点不超过10
[0, 3, 6, 9]
  • enumerate() :把单个数组创建为带有索引号的成对列表
>>>seasons = ['spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

升级你的模块:参数

扁平化打印只能看到每个数组最小的元素,考虑用缩进来体现彼此的关系。那怎么做呢?

提示:用range方法实现。

事实上在打印时只需要知道每次迭代的深度,就好处理了。因此需要引入第二个参数

# base.py

def flatten(_list,level=0):
    if(isinstance(_list, list)):
        for _item in _list:
            flatten(_item,level+1)
    else:
        for step in range(level):
            print("\t", end='')
        print(_list)
# app.py
import base as util

movies = ["venom", ["My Neighbor Totor", ["Aquaman"]],
          ["My Neighbor Totor", ['000',["Aquaman"]]], 'aaa', ['Aquaman'],'sadas']
print(util.flatten(movies))

效果出来了。但还有不满意的地方。如果要兼容过去的写法怎么办?

def flatten(_list, count=False, level=0):
 
    if(isinstance(_list, list)):
        for _item in _list:
            flatten(_item,count,level+1)
    else:
        if count:
            for step in range(level):
                print("\t", end='')
            print(_list)
        else:
            print(_list)

调用时默认就是不缩进。

--结束END--

本文标题: hand first python 选读

本文链接: https://lsjlt.com/news/180420.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • hand first python 选读
    列表(list) 基本操作 比如说我要整理一个近期热映的电影列表: movies = ["venom", "My Neighbor Totor", "Aquaman"] print(movies) # ['venom', 'My Neig...
    99+
    2023-01-30
    选读 hand python
  • 读书杂记Head first EJB(3)
    今天书要还了,最后总结一下实体bean。实体bean中除了要放来自home及组件接口的方法和来自EntityBean接口方法外,还有一样:虚持久字段。这个到时会和部署文件有关联。实体bean很大的不同点在于实体bean的create() 及...
    99+
    2023-06-03
  • Head First Python (一
    建立一个数组: cast = ["Cleese","Palin","Jones","Idle"]   列出数组有多少数据项:   print(len(cast))   用列表“方法”在末尾增加一个数据项:  cast.append("...
    99+
    2023-01-30
    Head Python
  • My first python appl
    ''' Authon:WSE_Gordon This application is use for the costomer to login the application. The Costomer need to input his...
    99+
    2023-01-30
    python appl
  • python, my first cod
    # coding:utf-8from random import randintnum=randint(1,100)print "guess the right number ,so please input a number:"a=1wh...
    99+
    2023-01-31
    python cod
  • First Day Python介绍
    前言:刚开通的博客,谢谢博客园平台,管理辛苦! Python介绍 Python是一门高级的、面向对象的、解释性、脚本语言。 高级语言:贴近开发者,对应底层语言,底层语言贴近机器;java、C#、php 。 面向对象对应于面向过程,是开发人...
    99+
    2023-01-31
    Day Python
  • CSS3的first-child选择器的用法
    本篇内容主要讲解“CSS3的first-child选择器的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS3的first-child选择器的用法”吧!C...
    99+
    2024-04-02
  • css中的first-child选择器怎么用
    这篇文章主要介绍了css中的first-child选择器怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   CSS3:first-c...
    99+
    2024-04-02
  • 使用:first-child伪类选择器选择第一个子元素的CSS样式
    使用:first-child伪类选择器选择第一个子元素的CSS样式CSS中的伪类选择器是一种强大的工具,可以选择并修改特定的元素。其中,:first-child伪类选择器是一种常用的选择器,它可以选择某个元素的第一个子元素,无论这个子元素是...
    99+
    2023-11-20
    first-child (first) 伪类选择器 (pseudo-class) CSS样式 (CSS style)
  • python读取文件怎么筛选特定信息
    要筛选特定信息,你可以使用Python读取文件,并使用条件语句来筛选出符合特定条件的信息。以下是一个简单的示例: 假设有一个文件te...
    99+
    2024-04-02
  • 使用:first-letter伪元素选择器改变首字母的样式
    使用:first-letter伪元素选择器改变首字母的样式,需要具体代码示例首字母在文章中往往具有一定的重要性,而通过使用CSS的:first-letter伪元素选择器,我们可以轻松地改变首字母的样式,为文章增添一些独特的艺术效果。首先,让...
    99+
    2023-11-20
  • Python first-order-model怎么实现让照片动起来
    这篇文章主要介绍“Python first-order-model怎么实现让照片动起来”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python first-order-mode...
    99+
    2023-07-02
  • Python中的文件读写模式有哪些选择?
    Python是一种功能强大的编程语言,提供了多种文件读写模式以满足不同的需求。本文将介绍Python中常用的文件读写模式,并给出相应的代码示例。读模式('r')读模式是最常用的文件读写模式,用于读取已存在的文件。在读模式下,文件指针位于文件...
    99+
    2023-10-22
    文件读写模式选择
  • 使用:first-of-type伪类选择器选择同类型元素中的第一个的样式
    CSS中的first-of-type伪类选择器可以用来选中同类型元素中的第一个元素并为其设置样式。这个选择器可以用于多个标签元素,例如p、div、span等等。下面是一个具体的示例代码:HTML代码:<div class="...
    99+
    2023-11-20
    样式 关键词:选择器 first-of-type
  • python 读shell
    test_txt = '/home/zcm/tensorf/siamfc-tf-master/data/Biker/groundtruth.txt'def load_label_set(label_dir):label_folder = o...
    99+
    2023-01-31
    python shell
  • 怎么在jQuery中使用last()方法和first()方法实现筛选元素
    怎么在jQuery中使用last()方法和first()方法实现筛选元素?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。jquery是什么jquery是一个简洁而...
    99+
    2023-06-14
  • Python数据读写之Python读写CSV文件
    目录1. 读取CSV文件 csv.reader()2. 写入CSV文件1. 读取CSV文件 csv.reader() 该方法的作用相当于就是通过 ',' 分割csv格...
    99+
    2024-04-02
  • 学习python[3] python 读
    转载自:http://blog.csdn.net/yukin_xue/article/details/9769803 Python直接读取中文路径的文件时失败,可做如下处理: dst3 = "D:/test/测试文件夹.txt...
    99+
    2023-01-31
    python
  • Python读写Excel
     读Excel 1 #打开Excek,xlsfile为Excel路径+文件名 2 boorRead = xlrd.open_workbook(xlsfile) 3 #读取sheet,sheet_name为Excel中sheet的名称...
    99+
    2023-01-30
    Python Excel
  • python读文件
    文件 1 内容如下  #some words Sometimes in life, You find a special friend; Someone who changes your life just ...
    99+
    2023-01-31
    文件 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作