python学习--初识python(了解python入门基本概念和基本使用(列表(嵌套列表)和函数)

一.python有什么与众不同的地方吗?
在这里插入图片描述
答:python有很多我们熟悉的东西,比如语句,表达式,操作符,函数,模块,方法,类,相信我们在学习其他的编程语言时早就见到了这些,这些十分的普通。但是python可以提供一样东西,让我们的日子更好过一些,至于是什么东西,继续往下阅读就能知道答案。
二.python有什么过人之处?
答:Python可以在PC,Mac,手持设备,电话,web都能部署,而且可以让我们毫不费劲的快速构建GUI,没错,python都能做到。
至于python的安装,可以参考其他大佬的博客,我的电脑上已经安装上了python,使用的第三方编辑器pycharm,当然我也在使用python自带的IDLE,确实也比较好用。
三.python是面向对象编程的语言还是面向过程?
答:python是一种面向对象的编程语言。至于两者区别,需要认真去理解。我觉得这种概念真的只有通过大量实践才能理解清楚
好了一些很入门的基础就总结完了,今天还会总结python的一些基本使用 。

在这里插入图片描述
其实上面的东西了解一下就可以(但也不能完全不知道),下面的才是重要的知识点
一.列表的使用:
相信可能很多人不知道列表,列表类似于数组,数组应该很多人知道,列表的访问跟数组是一样的,也是使用下标进行访问。(下标从0-n-1编号,假如有n个元素)
但是这里也需要辨析一下列表与数组的不同:
1.列表是动态的,不必指定大小,而数组就必须指定大小
2.python中列表元素可以是任何数据类型,可以是字符串,可以是字符串+数字,可以是数字,甚至可以是列表(这也是python的一个重要特性:python的变量标识符没有类型(但其命名规则还是与其他语言是统一的),但是数组在声明时必须声明数据类型。
3.列表是完备的python集合对象,这句话的意思是开发者为我们提供了很多功能去处理列表 。
下面是列表的一些功能的使用:

cast = ["Tom","jack","RUSH"]  //创建一个列表。python单引号和双引号没有区别,里面的都是字符串,但必须成对使用。
print(len(cast)) //可以得到列表的长度
cast.append("gih")//向列表末尾增加一个数据项
cast.pop() //删除列表末尾的数据项
cast1 = ["zhangsan","lisi"]
cast.extend(cast1)//向末尾增加一个数据项集合
cast.remove("Tom")//删除特定数据
cast.insert(1,"qwl")//在特定位置前面插入一个数据项
print(cast[0])
print(cast[1])//与数组一样的访问方式

在这里插入图片描述
来了,重点。该迭代了。
for循环处理列表。
首先声明for循环是可伸缩的,使用于任意大小的列表(for in循环)

cast = ["Tom","jack","RUSH"] 
for cast_ in cast:
      print(cast_)

那么又有问题来了,怎么处理嵌套列表呢,对于规则的嵌套列表
如下:

cast = [["Tom",22],["jack",33],["RUSH",23]] //对于这样很有规则的嵌套列表,它就像是一个二维数组一样,可以使用双层循环去遍历
for cast_each in cast:
     for cast_ineach in cat_each:
            print(cast_ineach)
print(cast[0][1]//打印22,跟二维数组类似

但是还有一些不规则的嵌套列表,该怎么办呢?,如果这时使用一个for循环只能打印最外层的列表
如下:

cast = [22,["Tom",22],["Jack",22,188]]

这种该怎么办呢,其他大佬的博客上提供了一些方法,但是python里有一个内置函数isinstance,它可以检查某个特定标识符是否包含某个特定类型的数据。python内置了很多功能,就等着我们去发现了,去利用了,这也就是python提供的东西,可以让我们更好过。
如下`

cast = ["tom","jack"]
isinstance(cast,list)//返回为True
a = 10
isinstance(a,list)//返回为False

所以解决办法如下(注意缩进哦,切记)python对格式要求很严格。

cast = [22,["Tom",22],["Jack",22,188]]
for cast_each in cast:
       if isinstance(cast_each,list):
               for cast_ in cast_each:
                       print(cast_)
       else:
               print(cast_each)
               

但是我们再考虑一种极端情况,列表中列表,列表中又有列表,又有列表,这个时候该怎么办呢,难道一直要重复写 for 和 if吗
,当然不用,如果想避免重复代码,就需要函数了,函数就是来干这个事情的。注意这个形式一层套一层,就可以联想到使用递归来写这个函数,
代码如下:

def print_list(the_list):
	for list_each in the_list:
		if isinstance(list_each,list):
			print_list(list_each)
		else:
			print(list_each)
    this_list = [[22,["Tom",176]],["Jack",["java",[22,"11"]]]]
    print_list(this_list)

还有复制代码不要全部一下复制过去(如果在shell上编译的话),如在这里需要让IDLE先编译函数,再复制this_list,再运行函数,一下全部复制过去就会出错的的如我下面的错误 invalid syntax错误
注意复制代码到IDLE上可能出现以下错误
在这里插入图片描述
Python中提示错误syntaxerror:multiple statements foundwhile compiling a single statement
这是因为整体复制过去导致的错误。
解决方法有:
方法一:先将第一行复制,敲一下回车,再将剩下的部分复制过去,运行;(在shell上运行)
方法二:,打开shell,然后Ctrl+N,跳出来一个编辑器,然后再写代码(复制过去),注意要保存文件为.py.再按F5就可以在shell中看到结果了

当然嵌套深度不能太深了,python3默认递归深度为100,当然可以根据需要更改深度,但速度就变慢了。

本次学习主要使用了列表,处理复杂的列表结构,函数(避免重复代码)的使用,递归,还基本的使用了IDLE…今天的总结就到这里。
如果有任何错误,欢迎大佬指正。
在这里插入图片描述

发布了16 篇原创文章 · 获赞 12 · 访问量 1471

猜你喜欢

转载自blog.csdn.net/weixin_45290352/article/details/105689071