当前位置:首页>python>python快速上手(学过c语言版)[第二期]

python快速上手(学过c语言版)[第二期]

  • 2026-10-11 07:57:11
python快速上手(学过c语言版)[第二期]

4.for循环

    假设你想遍历一个动物列表,可用如下语法,打印出每一个动物的名字

animals=["cat","dog","bird"]for animal in animals:print (animal)

深入解析一下第二行代码:

  • 这行代码让python获取列表animals中的第一个值“cat”,并将其储存在变量animal里,接下来python读取下一行代码把变量animal的值打印出来。
  • 鉴于列表还有其他值,python返回到循环第一行,获取列表animals中的下一个值“dog”,储存在变量animal里,依此类推。
  • 注意:每个缩进的代码行都是循环的一部分,请在python书写中谨慎对待缩进。

创建数字集合列表

range()的使用

    python中函数range()可以生成一系列的数字,包含三个参数,

    第一个是起始数,第二个是终止数(生成到终止数的前一个),最后一个是步长(一次加几)(不填时默认为1)

用range创建数字列表

    可以利用函数list(),将range()得到的结果直接转为列表。

nums=list(range(1,6))   #将range()的结果作为list()的参数,输出一个数字列表print(nums)         #输出[1,2,3,4,5] nums=list(range(2,11,2)) #增加第三个参数,步长为2,也就是从2开始不断加2,直到>=11print(nums)       #输出[2,4,6,8,10]

5.列表补充

列表解析

    列表解析是,将for循环和创建新元素的代码合并成一行,并自动附加新元素。

    比如,想要实现创建一个列表,包含1~10的前十个整数的平方,如果不用列表解析,需要费事一些:

squares=[]      #创建一个空列表for value in range(1,11):  #1~10    squares.append(value**2) #把平方后的值追加到列表中print(squares)     #输出[1,4,.....,100]

    而列表解析可以大大简化我们的代码:

squares=[value**2for value in range(1,11)]print(squares)    #输出同上

    解释下这个语法:

    首先制定一个描述性的列表名,这里是squares,

    然后方括号内先定义一个表达式,用于生成想要储存到列表中的值,再编写一个循环来给表达式提供值。

简单统计计算

切片

    列表的部分元素称作切片,要创建一个切片,可指定要使用的第一个元素和最后一个元素的索引。

    注:

    最后一个元素的索引若省略,代表让切片从指定的第一个元素到达列表的末尾

    第一个元素的索引若省略,代表让切片从列表的开头到指定的最后一个元素。

深拷贝与浅拷贝

    书里写到了列表复制这一段时,我不由得联想到了c++里的深拷贝和浅拷贝问题,

    如果你学过c++,可以再回忆一下,两者其实是共通的:

    当类内有在堆区开辟的数据时,若你创建对象并赋值,编译器会调用默认的拷贝构造函数,

    这个函数内部只是简单地把同一个地址赋予了两个名字,也就是说,a和b的那个堆区成员指向了同一块内存。所以调用析构函数的时候,会导致内存重复释放,使程序崩溃。

    回过头来,我们看一下python中的类似问题:

    当你简单地想要通过赋值来拷贝a列表,却发现得到一个id号和a一模一样的列表,如果按c++中的说法来看,b=a就只是创建了一个引用,两者指向同一块地址,根本上是一个东西。所以修改其中一个,另一个也会跟着改变。

    因此,python为我们提供了一个正确的复制列表的方法:

    同时省略起始和终止的索引([:]),让python创建一个始于第一个元素、终止与最后一个元素的切片,也就是复制整个列表。

6.元组

    元组可以创建一系列不可修改的元素,python称这种不可变的列表为元组。

    定义方法:

a=(1,2,3) #用圆括号#使用语法和列表一样,如print(a[0])#此时再单独修改列表里的元素,如a[0]=0,就是不合法的

7.if语句

小补充

输入处理

    直接编写代码来讲解:

colours=["red","orange","yellow","green","blue","purple"]#我们要做一个程序,检测用户输入的颜色是否在列表内,如果在就打印出来selectedcolours=input("请输入你想寻找的颜色")#很多网站运用了同样的逻辑,比如用户名是独一无二的,Tina和tina是同一个用户名#而python比较字符串的逻辑是区分大小写,所以,我们需要在得到用户端的输入后,转成小写和列表比较#因此,为了防止用户输入的是Red,导致找不到列表中的red,我们也要对得到的输入字符串进行转小写处理selectedcolours=selectedcolours.lower()#接下来再遍历列表就可以了for colour in colours:if selectedcolours==colour:        print("ok,"+selectedcolours)

比较

    与c语言无异,比较是否相等,用(==);比较是否不等,用(!=);表达式满足条件返回True,否则返回False。

    如果是数字比较,(>)(<)(>=)(<=)等使用也都与c语言一样。

    但是,python中的并且用and关键词、或者用or关键词

    为了增强可读性,我们当然可以写成这种格式:(7<4) or (7<5),但非必须。

检查某值是否在列表中

colours=["red","orange","yellow","green","blue","purple"]selectedcolours=input("请输入你想寻找的颜色")selectedcolours=selectedcolours.lower()if selectedcolours in colours: #检查用户输入的颜色是否在列表里    print("ok,"+selectedcolours)

    检查是否在列表里,用关键词in,检查是否不在,用关键词not in,不再写代码解释。

if语句

简单概括

if语句使用方法已经在上面的代码里展示过了,基本语法为

if +条件 + :

[缩进]符合条件则执行的语句

而if-else语句用法也和c语言没有差异,基本语法为

if +条件 + :

[缩进]符合条件则执行的语句

else:

[缩进]不符合条件则执行的语句

唯一有点区别的,就是elif这个关键字,它相当于我们学过的else if,下面写代码展示一下:

print("4岁以下免费,4~18岁收5元,18岁以上收10元")age=int(input("购票系统,请输入年龄:")) #input默认接受到字符串,需要强制转换if age<=4:    print("免费,该票已获取")elif age>4and age<=18:    print("五元,请付款")elif age>18and age<=60:    print("10元,请付款")else :    print("年龄>60不可购票")

进阶补充

和其他语言一样,python的if语句同样支持嵌套

colours=["red","orange","yellow","green","blue","purple"]selectedcolours=input("请输入你想寻找的颜色")selectedcolours=selectedcolours.lower()if colours:        #检查列表是否不为空的语法,不空返回True,空返回Falseif selectedcolours in colours: #检查用户输入的颜色是否在列表里        print("ok,"+selectedcolours)else :    print("列表为空")

小编碎碎念

第二期结束啦。

如果你已经有其他语言的基础了,想要快速上手python,我十分推荐你看书学习,既节省时间、又可以学得通透。

我的这些笔记,是阅读过业界公认的python入门友好书籍,提炼总结出来的,如有模糊之处,也推荐大家买一本这个书,看一看该书作者精彩的讲解,感受一下python的精妙。

我是一只思绪漫游的00后,欢迎关注~

最新文章

随机文章