python1-4章(待更新)

数据集合:列表和字典

数据集合需要高效的遍历【遍历是循环吗】

循环:检查条件——满足条件,执行一定语句

python社区

需学习章节:2,3,4,5,6,8

第二章 变量和简单的数据类型

变量:表示  数据类型

变量variable:变量名、值value

    变量名

命名规则:1)字母,数字,下划线(不能数字开头)2)不能用空格,可以用下划线分隔单词3)尽量不要使用小写字母l和大写字母O

        变量名全大写:全大写字母来指出应将某个变量视为常量

        值:可以是文本(此时文本需要用双引号括起来【一定吗?单引号可以嘛?】)。如:“Hello world!” 。每个变量指向一个(value——与该变量相关联的信息。在这里,指向的值为文本 "Hello Python world!"。

        可以随时修改值,python始终记录最新的变量值

字符串string

        用单引号‘’或双引号“”括起来的一系列字符

大写、小写、首字母大写

f字符串:

  • 直接输出
  • 使用f字符串创建消息,赋给新的变量,再输出(使用 f 字符串根据列表中的值来创建消息)

在字符串中使用变量的值。如:你可能想使用两个变量分别表示名和姓,再合并这两个值以显示姓名。

        要在字符串中插入变量的值,可先在左引号前加上字母 f,再将要插入的变量放在花括号内。

这种字符串称为 f 字符串f format(设置格式)的简写,因为 Python 通过把花括号内的变量替换为其值来设置字符串的格式。

first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
print(full_name)
print(full_name.title())
print(f"hello,{full_name.title()}")
还可以使用 f 字符串来创建消息,再把整条消息赋给变量
first_name = "ada"
last_name = "lovelace"
full_name = f"{first_name} {last_name}"
message = f"hello,{full_name.title()}"
print(message)

制表符\t,换行符\n

须在引号内使用

数Number

整数integer

浮点数float:小数(带小数点的数)

整数和浮点数

        将任意两个数相除,结果总是浮点数,即便这两个数都是整数且能整除

        整数和浮点数运算,结果总是浮点数

        在 Python 中,无论是哪种运算,只要有操作数是浮点数,默认得到的就总
是浮点数,即便结果原本为整数

同时给多个变量赋值

在一行代码中给多个变量赋值,这有助于缩短程序并提高其可读性。
例如,下面演示了如何将变量 xy z 都初始化为零
#%%
x,y,z =0,0,0 
print(x,y,z) 

常量

变量名全大写:全大写字母来指出应将某个变量视为常量

注释

如何编写注释

        注释用井号(#)标识。井号后面的内容都会被 Python 解释器忽略

该编写什么样的注释

列表

称为列表的数据结构中存储一系列信息,以及如何通过遍历列表来操作其中的信息
【存储信息——列表,操作信息——遍历列表】
【列表是数据结构的一种】

列表list-----[元素1,元素2,元素3....]

        名称:复数名。如
        组成:一系列有顺序的元素【有序元素的集合】
        表示:[]

对列表的操作

创建一个空列表
motorcycles = []
列表元素——访问列表list中的某一个元素(值)
    格式:列表名[元素对应的索引]。因为列表里的元素是有序排列,每个元素对应独特的索引,需要访问某一个特定元素时,可指出列表的名称,再指出元素的索引,并将后者放在方括号内
    注意:索引——从0开始
        访问第一个元素:索引0 
        访问最后一个元素:索引 -1【别忘了,每当需要访问最后一个列表元素时,都可以使用索引 -1。这在任何情况下都行之有效,即便在你最后一次访问列表后,其长度发生了变化】
        【仅当列表为空时,这种访问最后一个元素的方式才会导致错误
        访问倒数第二个元素:索引 -2
                                        常见的访问list中某一元素的代码:
bicycles = ['trek','cannondale','redline','specialized']
print(bicycles)
print(bicycles[0])
print(bicycles[0].title())
print(bicycles[1])
print(bicycles[-1])
列表元素——使用列表list中的各个值(元素)

        列表中的元素当作变量:可以像使用其他变量一样使用列表中的各个值。例如,可以使用 f 字符串根据列表中的值来创建消息。

下面尝试从列表中提取第一款自行车,并使用这个值创建一条消息:

    
列表元素——修改

列表元素——添加---列表末尾

.append()

在列表添加新的元素:最常见的情况是先创建一个空的列表,然后使用.append()方法添加新的元素

#%%
motorcycles = []
motorcycles.append('1')
motorcycles.append('2')
motorcycles.append('3')
print(motorcycles)

列表元素——添加---列表某个位置

.insert(要插入的索引值(要插入的位置),元素)

例题

列表元素——删除
方法一:del语句——del 列表名[要删除元素的索引值(位置值)]
  • 知道要删除元素的位置
  • 永久性删除

方法二:pop方法(删除列表里面最后一个元素)——列表名.pop()
  • 删除最后一个元素
  • 时间性强
  • .pop()方法里面没有参数【因为默认删除列表里面最后一个元素】
  • 永久性删除:每次使用.pop()方法时,被弹出的元素就不再列表中了

例一:三辆按时间购买的自行车bicycle1,bicycle2,bicycle3。使用pop方法重新命名一个变量last_owned(表示最近购买的这辆自行车),输出“The last bicycle I owned was a {last_owned}”

#%%
bicycles = ['bicycle1','bicycle2','bicycle3']
last_bicycle = bicycles.pop()
print(f"The last bicycle I owned was {last_bicycle}")

例二

motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
  • pop() 返回被删除的元素,所以可以存入一个新的变量(popped_motorcycle) ,以后仍然可以访问。
方法三:pop方法(删除列表里面任意一个位置的元素)——列表名.pop(元素的索引值)

例一:首先弹出列表中的第一款摩托车,然后打印一条有关这辆摩托车的消 息。输出是一个简单的句子,描述了我购买的第一辆摩托车:

#%%
motorcycles = ['honda','yamaha','suzuki']

first_owned = motorcycles[0]
print(f"The fisrt bicycle I owned was a {first_owned}")

方法四:remove方法(作用:不知道位置,但知道元素值)—列表名.remove(要删除的元素值)
  • remove() 方法只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环,确保将每个值都删除。这将在第 7 章介绍。

例一:

#%%
motorcycles = ['honda','yamaha','suzuki','ducati']
print(motorcycles)

too_expensive = 'ducati'
motorcycles.remove('ducati')

print(motorcycles)
print(f"\n A {too_expensive.title()} is too expensive for me")

管理列表

  • 排序(按字母顺序)
  • 反转列表
  • 列表长度
列表—排序:按照字母顺序——.sort()方法
  • sort() 方法能永久地修改列表元素的排列顺序。

例一:假设你有一个汽车列表,并要让其中的汽车按字母顺序排列。为了简化这项任务,假设该列表中的所有值都是全小写的。

#%%
cars = ['bmw','audi','toyota','subaru']
cars.sort()
print(cars)
列表——按照字母顺序相反的方向排序——.sort()方法
  • 按与字母顺序相反的顺序排列列表元素,只需向 sort() 方法传递参数 reverse=True 即可。
#%%
cars = ['bms','audi','toyota','subaru']
cars.sort(reverse=True)
print(cars)
列表——临时排序sorted()函数
cars  = ['bms','audi','toyota','subaru']
a = sorted(cars)

print(a)

print(cars)

列表——反向打印列表:reverse()方法
  • 反转列表元素的排列顺序
  • 永久性
#%%
cars  = ['bms','audi','toyota','subaru']
cars.reverse()
print(cars)

列表长度--list长度即:元素个数——len()函数

  • 列表长度即:list里面有多少个元素。和元素的索引不一样

遍历列表

遍历整个列表,无论列表有多长,都只需要几行代码就能做到。循环让你能够对列表的每个元素采取一个或一系列相同的措施
遍历列表:通过循环的方式——本质上还是对列表里面的元素进行操作
例一:三个魔术师,通过for循环打印每个魔术师的名字
#%%
magicians = ['alice','david','carolina']
for magician in magicians:
    print(magician)

for a in 列表名: a可以是之前没有见过的、定义过的新变量名【编写 for 循环时,可以给将依次与列表中的每个值相关联的临时变量指定任意名称

  •         a是临时变量,每次循环都会被赋予新的值

逻辑:1)先定义列表

           2)接下来,定义一个 for 循环。这行代码让 Python 从列表 magicians 中取出一个名字,并将其与变量magician 相关联

           3)最后,让 Python 打印前面赋给变量 magician 的名字

例二:扩展前面的示例,为每位魔术师打印一条消息,指出他/她的表演太精彩了(that was a great trick)。

#%%
magicians = ['alice','david','carolina']
for magician in magicians:
    print(f"{magician.title()}, that was a great trick!")

例三:下面再来添加一行代码,告诉每位魔术师,我们期待他/她的下一次表演:

magicians = ['alice','david','carolina']
for magician in magicians:
    print(f"{magician.title()}, that was a great trick!")
    print(f"I can't wait to see your next trick,{magician}\n")

数值列表

列表非常适合用于存储数值集合,而 Python 提供了很多工具,可帮助你高效地处理数值列表。

创建数值列表——for i in range(a,b)或者for i in range(a)

循环+range()函数——两种用法
用法一:一种参数——range(a,b)
输出:从a开始,到b-1结束(python常见的差一行为)
for i in range(1,3):

for i in range 1,3):
  • 这两行代码range后面有没有空格都一样
用法二:一种参数——range(a)
输出:从0开始,a-1结束
#%%
for i in range(3):
    print(i)
#输出:
0
1
2

创建数值列表——list()函数+range()函数

创建数值列表,可使用 list() 函数将 range() 的结果直接转换为列表。如果将 range() 作为 list() 的参数,输出将是一个数值列表。
numbers = list(range(1,6))
print(numbers)
#输出:
[2, 4, 6, 8, 10]

range()函数

使用 range() 函数时,还可指定步长。为此,可以给这个函数指定第三个参数,Python 将根据这个步长来生成数
例一:输出(2,10)的偶数
#%%
even_numbers = list(range(2,11,2))
print(even_numbers)

例二:创建一个列表,其中包含前 10 个整数(110)的平方

#%%方法一:
squares = []
for value in range(1,11):
    square = value**2
    squares.append(square)
print(squares)

#%%方法二:
squares = []
for value in range(1,11):
    squares.append(value**2)
print(squares)

#方法三

squares = [value**2 for value in range(1,11)]
print(squares)

数值列表—统计操作

最值、平均值

#%%
digits = list(range(0,10))
min(digits)
max(digits)
sum(digits)
print(min(digits))
print(max(digits))
print(sum(digits))

列表推导式

squares = [value**2 for value in range(1,11)]
print(squares)

一行代码生成列表:将 for 循环和创建新元素的代码合并成一行,并自动追加新元素。

【特点】:

  • 一个关于variable的表达式 +一个for循环
  • for循环也有特点,只能生成range(),即一系列数
指定一个描述性的列表名,如 squares。然后指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值。在这个示例中,表达式为 value**2,它计算平方值。接下来,编写一个 for
循环,用于给表达式提供值,再加上右方括号。在这个示例中,for 循环为 for value in range(1,11),它将值 110 提供给表达式value**2。请注意,这里的 for 语句末尾没有冒号。

思路:

对于数值列表,打印数值列表的值有三种方式:

1)for循环+range()

2)先创建一个数值列表:列表名=list(range())   

3) 使用列表推导式创建一个数值列表: 列表名=[表达式   for循环+range()]

#方法一
for i in range(1,21):
    print(i)

#方法二
numbers = list(range(1,21))
for number in numbers:
    print(number)

#方法三
numbers = [number*1 for number in range(1,21)]
for number in numbers:
    print(number)

切片---使用列表的一部分

  • 切片slice——使用一部分列表的操作
  • 切片:列表的一部分
  • 语法:列表名[a:b]——输出:第a个元素到b-1个索引对应的元素(range()函数差不多)     
  • 表示切片的方括号内指定第三个值。这个值告诉 Python 在指定范围内每隔多少元素提取一个。
#%%
players = ['charles','martina','michael','florence','eli']
print(players[:3]) #输出前三名队员的名字
print(players[2:4])
print(players[:4]) #没有指定起始索引,Python 从列表开头开始提取
print(players[-3:]) #输出名单上最后三名队员的名字

#输出
['charles', 'martina', 'michael']
['michael', 'florence']
['charles', 'martina', 'michael', 'florence']
['michael', 'florence', 'eli']

切边--遍历切片

for循环:先定义列表,再for循环

例题:遍历前三名队员,并打印他们的名字

#%%
players = ['charles','martina','michael','florence','eli']
print("Here are the first three players:")
for player in players[:3]:
    print(player)

元组tuple

列表和元组的区别:

列表非常适合用于存储在程序运行期间可能变化的数据集,可以修改;元组是不可修改的数据集

定义元组

元组名=()

  • 圆括号而不是方括号来标识。定义元组后, 就可使用索引来访问其元素,就像访问列表元素一样
  • 定义只包含一个元素的元组,必须在这个元素后面加上逗号

例题:有一个大小不应改变的矩形,可将其长度200和宽度50存储在一个元组中,从而确保它们是不能修改的
dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])
  •  元组的很大的一个意义在于:确保数值不会更改

遍历元组

for 循环来遍历元组中的所有值
dimensions = (200,50)
for dimension in dimensions:
    print(dimension)

修改元组变量

修改元组中某一个元组变量会报错

要改只能把整个元组一起改了(重新赋值):虽然不能修改元组的元素,但可以给表示元组的变量赋值。
例如,要修改前述矩形的尺寸,可重新定义整个元组:
dimensions = (200,50)
print("original dimensions:")
for dimension in dimensions:
    print(dimensions)
dimensions =(400,100)
print("\nModified dimensions:")
for dimension in dimensions:
    print(dimension)

#输出:
original dimensions:
(200, 50)
(200, 50)

modified dimensions:
400
100

第五章

你不仅会学习如何使用 if 语句在不同的条件下采取不同的措施,而且会学习如何将一组较复杂的条件测试组合起来,并在满足特定条件时采取相应的措施。你还将学习如何在遍历列表时,使用 if 语句对特定的元素采取特定的措施。
在本章中,你将学习条件测试,以检查你感兴趣的任何条件。你将学习简
单的 if 语句,以及如何创建一系列复杂的 if 语句来确定当前到底处于什
么条件下。接下来,你将把学到的知识应用于列表:编写一个 for 循环,
以一种方式处理列表中的大多数元素,以另一种方式处理包含特定值的元
素。

知识点荟萃

1.查看一个浮点数的数据类型

错误代码:

number = 4.5
print(numer.type())

        应该使用 type() 函数,但不能用 numer.type()(因为 numer 只是一个普通变量,没有 .type() 方法)。

正确代码:

numer = 4.5
print(type(numer))  # 输出变量类型

2.type()

type()是函数,不是方法

知识点

注意:随时准备将简单的孤立的知识点穿起来

高亮:print()函数名称,显示为一种颜色

总结——方法【干中学】:

形式(三部分组成):   . method ()

方法 (method):是 Python 可对数据执行的操作。在 name.title() 中, name 后面的句点(.)让 Python name 变量执行 title() 方法指定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成工作。这种信息是在括号内提供的。title() 函数不需要额外的信息,因此它后面的括号是空的。
方法 (method):在变量名后使用【不确定,再多积累一些case】
                                print输出中直接使用,不需要单独一行代码。比如hello world首字母大写
name = 'hello world'
print(name.title())
 方法大小写处理——将字符串改为全大写或全小写

方法:全大写——.upper()

方法:全小写——.lower()

方法:首字母大写——.title()

方法:删除字符串空白

删除左端空白方法——.lstrip() 方法

删除右端空白方法——.rstrip() 方法

删除两端空白方法——.strip() 方法

1.删除是暂时的

2.永久删除需要:将新结果关联到变量(重新赋值)

方法:删除前缀

.removeprefix()。括号内为要删除的字符(用引号括起来)。只要涉及到字符,都用引号括起来。

nostarch_url = 'https://nostarch.com'
print(nostarch_url.removeprefix('https://'))
方法:在列表里面添加新的元素

在列表添加新的元素:最常见的情况是先创建一个空的列表,然后使用.append()方法添加新的元素

#%%
motorcycles = []
motorcycles.append('1')
motorcycles.append('2')
motorcycles.append('3')
print(motorcycles)

方法:.pop()
方法:remove
#%%
motorcycles = ['honda','yamaha','suzuki','ducati']
print(motorcycles)

too_expensive = 'ducati'
motorcycles.remove('ducati')

print(motorcycles)
print(f"\n A {too_expensive.title()} is too expensive for me")
方法:.sort()

for循环

for循环格式一:

for magician in magicians:
  • for 临时变量 in 列表名

好代码积累

print("\n")

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值