目录
在 Python 中,属性访问通常遵循一种约定,即属性名以点号(.
)开头。这种约定适用于对象的方法和属性,但不适用于内置函数。
内置函数,如 len()
、print()
、abs()
等,是 Python 语言的一部分,它们提供了一种内置的方式来执行特定的操作。这些函数不是对象的方法,因此它们没有点号(.
)前缀。
对象的方法是与对象关联的函数,它们通常以点号(.
)开头。例如,如果你有一个列表对象,你可以使用 .append()
方法来添加元素,使用 .remove()
方法来删除元素,等等。
切片操作可以访问一定范围内的元素,语法如下所示:
sname[start : end : step]
sname:表示序列的名称;
start:开始索引位置(包括该位置),默认为 0;
end:表示切片的结束索引位置(不包括该位置),默认为序列的长度;
step:步长。
以字符串为例,如下所示:
str = 'Python'
print(str[:3])
print(str[3:])
print(str[:])
输出结果:
Pyt
hon
Python
str[:3]:表示从字符串的开头到索引 3(不包括索引 3)之间的子字符串,即 str[0:3],所以输出为 "Pyt"。
str[3:]:表示从索引 3 到字符串的末尾之间的子字符串,即 str[3:len(str)],所以输出为 "hon"。
str[:]:表示从字符串的开头到末尾之间的子字符串,即整个字符串本身,所以输出为 "Python"。
Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同;列表是序列结构,可以进行序列结构的基本操作:索引、切片、加、乘、检查成员
列表中所有元素都放在一个中括号 []
中,相邻元素之间用逗号 ,
分隔,如下所示:
l = [1024, 0.5, 'Python']
#split方法转换成列表
list=num.split
#建立空列表
list=[]
通过索引访问列表中的值,还可以使用 :
截取范围内的元素,如下所示:
l = [1024, 0.5, 'Python']
print('l[0] -->', l[0])
print('l[1:] -->', l[1:])
输出结果:
l[0] --> 1024
l[1:] --> [0.5, 'Python']
除了对列表中现有元素进行修改外,还可以使用 append()
向列表中添加新元素,如下所示:
l = [1024, 0.5, 'Python']
# 修改列表中第二个元素
l[1] = 5
# 向列表中添加新元素
l.append('Hello')
print('l[1] -->', l[1])
print('l -->', l)
insert
通过输入的多个连续字符串创建列表,以空格间隔,使用insert函数将“Allen”加到列表最前面,输出完整列表。
a=input().split()
a.insert(0,'Allen')
print(a)
(1)输入
使用input()函数获取用户输入
(2)创建列表
使用split函数,对获取到的用户输入,以空格为间隔,创建一个列表
(3)添加到列表最前面
使用insert函数,将需要添加的内容(字符串'Allen'),添加到列表最前面
函数用法:需要添加内容的列表.insert(添加的位置,添加的内容)
(4)输出完整列表
使用print函数,输出列表
(5)交流
如果大佬看到了,希望可以交流一下,为什么我的三行代码不能直接写成一行,必须写三行。
输出结果:
l[1] --> 5
l --> [1024, 5, 'Python', 'Hello']
l = [1024, 0.5, 'Python']
# 删除列表中第二个元素
del l[1]
print('l -->', l)
输出结果
l --> [1024, 'Python']
remove
列表名.remove(要移除的元素)
2.5 排序
sort 与 sorted 区别:
元组(tuple)与列表类似,但元组是不可变的,可简单将其看作是不可变的列表,元组常用于保存不可修改的内容。
元组中所有元素都放在一个小括号 ()
中,相邻元素之间用逗号 ,
分隔,如下所示:
t = (1024, 0.5, 'Python')
当看到字典这个词时,有些人包括我自己在内,首先映入眼帘的便是新华字典,
我清楚的记得,刚上小学时老师就让每一个学生准备一本新华字典,它的使用大家也应该都清楚,通过拼音、偏旁部首等进行查询;今天我们说的字典(dict)是 Python 的数据结构,因为都叫字典,我们不用想也知道它们是十分相似的,它们的内容都是以键-值(key-value)的方式存在的。
dict 拥有良好的查询速度,dict 中的值可以是任意 Python 对象,多次对一个 key 赋 value,后面的 value 会把前面的 value 覆盖。
字典的内容在花括号 {} 内,键-值(key-value)之间用冒号 : 分隔,键值对之间用逗号 , 分隔,比如创建字典 d,如下所示:
d = {'name':'小明', 'age':'18'}
# 使用 dict 函数
# 方式一
l = [('name', '小明'), ('age', 18)]
d = dict(l)
********# 方式二**************
d = dict(name='小明', age='18')
******************************
# 空字典
d = dict()
d = {}
字典中的值通过 key 进行访问,如下所示:
>>> d = dict(name='小明', age='18')
>>> d['name']
'小明'
# 使用 get 方法
>>> d.get('name')
'小明'
修改操作(方括号),以修改 age 为例,如下所示:
>>> d = dict(name='小明', age='18')
>>> d['age'] = '20'
>>> d['age']
'20'
d.clear()
集合(set)与字典相同均存储 key,但也只存储 key,因 key 不可重复,所以 set 的中的值不可重复,也是无序的
集合使用花括号 {}
或者 set()
函数创建(方括号),如果创建空集合只能使用 set()
函数,以创建集合 s 为例,如下所示:
s = {'a', 'b', 'c'}
# 使用 set 函数
s = set(['a', 'b', 'c'])
# 空集合
s = set()
集合中重复的元素会被自动过滤掉,如下所示:
>>> s = {'a', 'a', 'b', 'c', 'c'}
>>> s
{'a', 'c', 'b'}
添加元素可以使用 add
或 update
方法,如果元素已经存在,则不进行操作,如下所示:
>>> s = {'a', 'b', 'c'}
>>> s.add('d')
>>> s
{'a', 'd', 'c', 'b'}
>>> s.update('e')
>>> s
{'a', 'b', 'e', 'd', 'c'}
# 添加已经存在的元素 a
>>> s.add('a')
>>> s
{'a', 'b', 'e', 'd', 'c'}
my_set.clear() 是调用集合对象 my_set 的 clear 方法,
用于清空集合中的元素,而 clear(my_set) 这种写法在Python中是不正确的,
因为 clear 不是一个独立的函数,而是集合对象的一个方
总结来说,clear是方法,而len是函数
获取集合的长度,同样使用 len
方法,如下所示:
>>> s = {'a', 'b', 'c'}
>>> len(s)
3
#通过一条简单的命令执行一系列复杂的操作
input print 都是函数
name=input("你好 ")
print(name)
l.append(4)
count=len(l) 用变量count来接收返回的结果
#调用函数的明显标志是 ,带上小括号(),()里的内容叫函数的参数
#函数的参数-在调用函数是给函数提供数据
#每个函数都有自己独特的功能,函数就是具有特定功能的代码块
# 函数执行完毕后会得到一个结果,这个结果叫做返回值
#不是每个函数执行完都有结果,所以不是每个函数都有返回值
print(len._name_)
点儿—什么什么的
__name__ 获取指定函数的名字
#define定义
#函数头——def 函数名(参数列表):
def say_hi():
#函数体-实现函数的功能
print("hello")
#函数外的其他代码
say_hi()
#先定义函数,然后调用函数,调用之后去执行函数体内的代码
#参数-在调用函数时,想函数提供数据
#函数返回值,就是调用函数后获取到的结果
def get_max(a,b):
v=a
if b>a:
v=b
return v
#将v返回给函数外界,也就是函数调用的位置
i=get_max(5,8)
print(i)
6.4 变量的作用域
#在函数外定义的变量 叫全局变量
全局变量可以在函数内使用,但不能在函数内直接修改
如果一定要在函数内修改全局变量的值,需要使用global关键字
global i
i=0
# 内 局部变量
局部变量只能在函数内使用和修改
定义函数时可以设置参数的默认值
class CuteCat:
#用首字母大写来区分单词
def __init__(self)
#括号里面可以放任意数量的参数,但第一个参数永远是被占用的,得用于表示对象自身,
约定俗成叫self,他能帮你把属性的值绑定在实例对象身上,如下所示
self.name="Lambton"
#如果不写self.,python会觉得至少给普通的变量name赋值
#创建个猫猫对象
cat1=CuteCat()
对象.属性名
print(cat1.name)
定义方法
和定义普通函数差不多def
1.要写在class里
2.第一个参数被占用(self)
class Student:
def__init__(self,name,id):
self.name=name
self.id=id
self.grades={"语文":0,"数学":0,"英语":0}#字典
def set_grade(self,course,grade):
if cousre in self.grade:#看传进来的course是不是字典里的键
self.gredes[course]=grade #如果是就让传进来的course建,对应传进来的grade值
chen=Student("小陈",2018136623)
chen.set_grade("数学",87)
在计算机领域中,绝对路径和相对路径是用来定位文件或目录的两种不同方式。它们可以用于 Linux 和 Windows 系统中,但在使用上有一些细微的区别。
Linux: 在 Linux 系统中,绝对路径是从根目录 /
开始的路径。例如,/home/user/Documents/file.txt
是文件 file.txt
的绝对路径,它从根目录开始一直到文件。
Windows: 在 Windows 系统中,绝对路径是从盘符开始的路径。例如,C:\Users\Username\Documents\file.txt
是文件 file.txt
的绝对路径,它从盘符 C:
开始一直到文件。
Linux: 在 Linux 中,相对路径是相对于当前工作目录的路径。例如,如果当前工作目录是 /home/user
,那么相对路径 Documents/file.txt
将会指向 /home/user/Documents/file.txt
。
Windows: 在 Windows 中,相对路径也是相对于当前工作目录的路径。例如,如果当前工作目录是 C:\Users\Username
,那么相对路径 Documents\file.txt
将会指向 C:\Users\Username\Documents\file.txt
。
需要注意的是,在使用相对路径时,当前工作目录的位置对路径解析是至关重要的。可以使用命令行或脚本中的 cd
命令(在 Linux 和 Windows 中都适用)来改变当前工作目录。
Python 在文件读写操作中,会使用「内置函数」和「Pandas 库」两种方式。
先来看内置函数,包括 open()、read()、readline()、readlines()、write()、writelines()、close() 等方法,也是接下来给大家详细介绍的内容。
再看 Pandas 库,包括 read_csv()、to_csv()、read_excel()、to_excel()、read_json()、to_json() 等方法,我们后面讲到 Pandas 库的时候,再详细讲讲。
打开文件open
hello = open('hello.txt', 'r')
关闭文件close
hello.close()
读文件
con=hello.read()
写入文件write
# 创建一个列表
txtlist = ['Python 私教\n', 'Java 私教\n', 'C++ 私教\n']
# 写入文件
with open('hello.txt') as hello :
hello.writelines(txtlist)
try:
print('-----test--1---')
open('123.txt','r')
print('-----test--2---')
except IOError:
pass
try:
num = 100
print(num)
except NameError as errorMsg:
print('产生错误了:%s'%errorMsg)
else:
print('没有捕获到异常,真高兴')
import time
try:
f = open('test.txt')
try:
while True:
content = f.readline()
if len(content) == 0:
break
time.sleep(2)
print(content)
except:
#如果在读取文件的过程中,产生了异常,那么就会捕获到
#比如 按下了 ctrl+c
print("捕捉到异常")
finally:
f.close()
print('关闭文件')
except:
print("没有这个文件")
文章浏览阅读4.1w次,点赞2次,收藏4次。SECS/GEM是半导体以及光伏行业等采用的通讯基础,在此之上进行搭建EAP,MES等管理系统。SECS/GEM使用起来会有许多注意内容,例如TCP/UDP,R232等通讯问题,以及通讯安全问题等。通讯双方认证,避免信息暴露以及后门问题等。金南瓜DMS安全,且经过大量工厂严格考验,其中不乏JECT,科瑞,三安等,在稳定性要求极高,稳定性高的SECS/GEM也带来设备的极好体验,让客户工程师使..._secs gem引用哪个using
文章浏览阅读2.3k次。由于Lazarus基于UTF-8,因此当读写Windows建立的纯文本文件的时候,由于其中的中文使用GBK(CP936)编码,可能会出现错误。此时可使用Lazarus自带的代码页转换单元LConvEncoding对编码进行转换。如UTF8和GBK互转function CP936ToUTF8(const s: string): string; // Chinesefunction UTF8_lazarus codepage
文章浏览阅读297次。8月24日,日本政府无视国际社会的强烈质疑和反对,单方面强行启动福岛核污染水排海。海关总署决定在当日起全面暂停了进口原产地为日本的水产品。海鲜市场遭遇了前所未有的困境。消费者对于核污水问题的恐慌已经超越了个人口腹之欲,海鲜销售量急剧下降。同时,二级市场对核污染水排海事件的敏度同样很高。受该消息影响,核污染水排海相关多个概念股异动,出现大幅度拉升甚至涨停。淡水水产可能会成为其替代品,从而推动淡水养殖行业的景气度提升。_水产养殖 数字孪生方案
文章浏览阅读5.4k次,点赞4次,收藏23次。以太网(Ethernet)以太网是一套标准,制定了相当于 OSI 模型 中第一层(物理层)和第二层(数据链路程)的技术规范。在物理层上,以太网采用 RJ45 接口和双铰线,光纤,电磁波等方式来传递信号。在数据链路层上,每个通信节点(主机的网络接口)都有 48 位(bit)全局唯一的 MAC 地址。通信数据流被切分并打包成帧(Frame)来发送,每帧都包含来源节点和目的节点的 MAC 地址。网段(Network Segment)中继器,集线器是和网线一样工作在物理层的硬件设备。被它们连接在一起的部分_以太网和tcpip协议关系
文章浏览阅读1.2k次。INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H。底下是它们的说明:AH_int10 颜色 背景
文章浏览阅读823次。本机MySQL数据库安装比较简单,但坑比较多,很容易出现安装好了但是在某些时候不能使用的情况;另外在卸载的时候,也容易出现卸载不干净,造成二次安装失败的情况,所以在安装前,一定要检查清楚,本地是否已经安装了MySQL。_mysql本地安装
文章浏览阅读264次。关键词:Android、事件分发、源码剖析情境(Situation)1. 专注于移动互联网数年,作为高P的我【鼓掌】竟然对事件分发机制见招拆招,似懂非懂。不专业,没法忍。2. View树的递归嵌套逻辑让广大一线同行云里雾里,手足无措。冲突(Complication)1. 网上好多相关主题的博客,描述信息点非常多(但是ACTION_CANCEL描述很少),看完后不明觉厉。2. 事件分发主..._android drop事件分类
文章浏览阅读201次。版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS(就类似于自己写很多个版本一样,不断改进的版本)所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。..._git 理论
文章浏览阅读1.9k次。使用eclipse工具新建工程,编译报错,elf/lib/rv32i/ilp32\libc.a(lib_a-closer.o): in function `.L0 ':closer.c:(.text+0x1c): warning: _close is not implemented and will always fail具体log信息如下:查看工程设置。project->properties->toolchains:toolchains path空出来,什么都不填._warning: _close is not implemented and will always fail
文章浏览阅读903次。 Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型。注意:所有格式化函数的第二个参数是用于转换的模板。表 5-7. 格式化函数 函数返回描述例子to_char(timestamp, text)text把 timest_oracle 格式化数字为4位
文章浏览阅读4.5k次。golang unicode转utf-8Unicode和utf-8的区别具体转换代码Unicode和utf-8的区别参考文章具体转换代码func handleResponse(resp *http.Response) (string, error) { respBytes, err := ioutil.ReadAll(resp.Body) defer resp.Body.Close()..._golang unicode转utf8
文章浏览阅读5.2k次,点赞52次,收藏111次。Python/PTA/浙大版/Python程序设计/题解_len('3//11//2018'.split('/'))的结果是_____。