常见问题:

文章目录

    • IDE与
    • 1.如何注释
    • 2.python运行代码后没有输出,但无报错,有exit code 0标志
    • 3.导入txt文件,但是出现错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 205: illegal multibyte sequence
    • 参数
    • isinstance()
    • 容器:特点、对元素提供的操作
      • 字符串 str
      • 列表 list
      • 元组 tuple:
      • 字典 dictionary:
    • 文件
      • 打开、只读、写入、关闭文件
      • 文件拷贝
      • 文件重命名
      • 文件夹创建删除等

IDE与

IDE(Integrated Development environment)是集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具,继承了代码编写、分析、编译、调试等功能为一体
pycharm有MAc、windows、Linux三个版本

1.如何注释

  • 单行注释:
    代码块前后用#
#注释内容
I am #后接注释内容
  • 多行注释
    用3个’或者"
'''注释中的内容
'''"""注释中的内容"""

多行注释的快捷键
选择区域,Ctrl+/
再次按快捷键,可以取消注释
MAC:CMD+/

2.python运行代码后没有输出,但无报错,有exit code 0标志

仅出现"Process finished with exit code 0"
有几种可能:

  1. 编写的代码本来就无输出,可以尝试用print或者其它代码试一试,确认不是原有代码的问题

  2. 之前创建project的时候,使用的是pycharm提供的虚拟解释器(New envionment using),而本应点击下方的Existing interpreter,并选定文件(精确到python.exe),下面提供了修改步骤:
    File→Settings→Project→Python Interpreter→点击“齿轮”图标→Add
    在这里插入图片描述
    在这里插入图片描述
    点击add后跳出另一界面:
    点击Existing environment,将python.exe的路径添加至Interpreter,并勾选Make available to all projects
    在这里插入图片描述
    OK→Apply
    在这里插入图片描述
    *倘若忘记了python.exe的为值可使用

  3. 排查了以上两种情况后,仍然有误,可以尝试打开Run with console(网上有人说亲测有效,我没试过)
    在这里插入图片描述
    在Configuration→Execution→Run with console 处勾选→Apply
    在这里插入图片描述

3.导入txt文件,但是出现错误:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 205: illegal multibyte sequence

(1)可能是因为txt文件中使用的是其它类型的编码,需要再加入标记:

FILE_OBJECT= open('order.log','r', encoding='UTF-8')
FILE_OBJECT= open('order.log','rb')

或者

FILE_OBJECT= open('order.log',encoding='rgb')

(2)除此之外,若文件不在当前目录,需要输入绝对路径:如文件为D:\python_program\exp\panda.txt,输入为:D:/python_program/exp/panda.txt,因为涉及“\”涉及到转义字符

参数

  1. 调用参数时既有位置参数也有关键字参数,应该先保证位置参数全部在前
  2. 在给函数添加默认(缺省)参数时,并不会给所有的参数都设置默认值。*不过若某一个位置的形参设置了默认参数,那么该位置后的所有参数都必须设置默认参数
  3. 含全局变量,但函数内部又有同名变量,会优先就近调用
  4. 函数遵循单一职责原则

每次条用函数都会返回一个新的对象

isinstance()

判断对象是否为某种类型,返回Bool型值

isinstance(a,int);
Ture

容器:特点、对元素提供的操作

相关度高的数据一同存储在同期中,可以减少变量的定义

根据不同类型数据由不同类型容器存储。有的容器方便操作、查询效率高、有的元素可以保证元素唯一、有的元素可以保证数据只读等。
eg.学校

根据存储数据的特点,分为序列式容器非序列式容器

  1. 序列式容器中的二元素在存放时都是连续存放的,包括字符串、列表、元祖
  2. 非序列式容器在存储元素时不时连续存放的,包括字典、集合
  3. 在这里插入图片描述

容器支持根据下标存取元素(索引):增、删、改、排序

字符串 str

不可修改
可索引

str1="123"
for n in str1:            #一个个取元素赋给nprint(n,end=" ")      #" "以空格结尾,输出不需要换行#或以下的这种,但是一般用for
i=0
while i<3print(str1[i]),end="")i+=1

replace函数:专属于字符串
replace并不会替换原本的字符串,而是替换之后新建一个字符串
eg.更换错别字

poetry="江南好,风景旧曾谙,日出江花红似火,春来江水绿如蓝,谁不忆江南?"
New=poetry.replace("谁","何")
New2=poetry.replace("谁","何",2)         #也可以加上需要修改的个数,不加默认为1,修改字符串左边优先修改
print(poetry)
print(New)

列表 list

一个列表中的元素类型可以多样化,但一般建议一列表用同一组
指定位置插入和删除元素,会造成数据元素的一移动,效率较低。
列表按按元素的搜寻效率低,但是按照索引的效率高。

append函数:向列表内按顺序添加元素

list1=[]
list1.append(100)
list1.append(10)
print(list1)[100, 10]

insert函数:在某一位置(写入索引)插入函数

[100, 10]
list1.insert(0,500print(list1)[500100, 10]

加列表加入与另一列表合并:

list1=[1,2,3]
lsit2=["aaa",5,""b]
list1.append(list2)[1,2,3,"aaa",5,""b]

pop函数:删除尾部元素,或指定位置元素

lsit1=[1,2,3]
lsit1.pop(0)       #删除位置0的元素
print(lsit1)[2, 3]lsit1.pop()       #删除位置0的元素
print(lsit1)
[1,2]

remove函数:按关键字移除列表内的值
如果有多个,默认左侧优先移除

list1=[100, 10, 20200, 30, 20]
list1.remove(20)
print(list1)[100, 10, 200, 30, 20]

del函数:根据位置删除

list=[1,2,3]
a=0
del list[a]
print(list)list=[2,3]

clear函数:清楚列表中的所有内容

list1.clear()print(list1)

sort函数:升序(reverse=False;默认)或逆序(reverse=True)

import random
list1=[]
i=0
while i<10:ran=random.randint(1,50)list1.append(ran)i+=1
print(list1)list1.sort(reverse=True)
print(list1)list1.sort(reverse=False)    #或者list1.sort( )
print(list1)[7, 4, 48, 8, 50, 45, 13, 48, 13, 1]
[1, 4, 7, 8, 13, 13, 45, 48, 48, 50]

reverse函数:将原有顺序逆序

list1=[34, 36, 35, 27, 35, 13, 45, 12, 20, 18]list1.reverse()
print(list1)[18, 20, 12, 45, 13, 35, 27, 35, 36, 34]

index函数:按照关键词查询其在列表中的位置

list1=[1,35]L=list1.index(1print(L)0          #输出的是索引   ,采用该方法可以修改对应位置的元素

元组 tuple:

  1. 元组和列表类似,但一旦创建不可修改
  2. 元组是序列式融通器,可以进行查询(索引/切片)(index)和遍历操作(for、while)
  3. 元组比列表更节省空间
my_tuple=(10,1)
print(my_tuple[0]10tuple=((e,a,2),)    #元组中若只含有一个元素,则尾部需+,
printtuple(('e', 'a', 2),)('e', 'a', 2)           #否则输出的是为嵌套的元组或者单独的数值

字典 dictionary:

字典查找效率高,以空间换取时间
键(唯一)、值对应,满足哈希表
不支持索引
可以修改
可以在字典中嵌套字典
创建、修改元素:

mysq={"a":8,"b":90,101:"cat"}     # 创建dictionary
print(mysq[101])                  # 输入键得到值"cat"mysq["b"]="Bob"                   # 对键下的**值**进行修改,不存在则添加新元素
print(mysq)
{'a': 8, 'b': 'Bob', 101: 'cat'}mysq['Dog']='8' 
{'a': 8, 'b': 'Bob', 101: 'cat''Dog''8'}

**del函数:**删除元素

del mysq['b']  #删除键-值对
print(mysq){'a': 8, 'b': 'Bob', 101: 'cat'}W=8
del W                        #可以直接某个变量
print(mysq)
{'b': 'Bob', 101: 'cat'}del person                  

**clear函数:**清空字典

mysq.clear()

遍历:
由于本身不能进行遍历,所以若要取出字典中所有的值,应该将其转成列表

输出键:

dic={'aaa':10,'bbb'"20,'ccc':30}
for v in dicprint(v)aaa
bbb
ccc                             #采用该方法仅输出键

也可以直接输出键:

my_list={'aaa':10,'bbb':20,'ccc':30}
key_list=my_list.keys()
print(key_list)dict_keys(['aaa', 'bbb', 'ccc'])
key_list=my_list.keys()
print(list(key_list))              #以列表形式输出['aaa', 'bbb', 'ccc']

输出值:

key_list=my_list.values()
print(list(key_list))[10, 20, 30]

**输出键值:**采用列表中嵌套元组
1. for

key_list=my_list.items()
print(list(key_list))[('aaa', 10), ('bbb', 20), ('ccc', 30)]for key in  list(key_list):print(key)('aaa', 10)
('bbb', 20)
('ccc', 30)

2. while

aa=my_list.items()
b=list(aa)
i=0
while i<len(b):print(b[i])i+=1('aaa', 10)
('bbb', 20)
('ccc', 30)#如果需要分开写键值,可以考虑这样写:
while i<len(b):print("key键",b[i][0],"value值",b[i][1])i+=1

文件

数据的接收和发送需要依赖于计算机操作系统控制硬件设备来完成。内部实现机制很复杂,但python将这些复杂的步骤封装起来,给了我们一种极其简单的实现方式,通过调用 print 和 input 函数来完成。
在这里插入图片描述

  1. 从键盘读取数据到程序中,并且从程序中将数据显示到屏幕,叫做标准输入和输出
  2. 丛文件读物数据到程序中,并且从程序中将数据存储到文件,叫做文件输入和输出
  3. 从网络读取数据到程序中,并且从哦程序中将数据发送哦到网络,叫做网络输入和输出

文件打开分为读、写、追加模式,这三种模式分别再分为文本模式和二进制模式
打开文件用的文本模式,会进行换行符的转换,打开文件用的是二进制模式的话,不会进行换行符转换。文件本质上都是以二进制的方法存储在磁盘上。

访问模式说明
r以制度方式打开文件。文件的指针将会放在文件的开头,为默认模式
w打开一个文件只用于写入。若果改文件已存在则将其覆盖。如果改文件不存在,创建新的文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的额内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
rb以二进制格式打开一个文件用于制度。文件指针将会放在文件的开头。这是默认模式
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
ab以二进制格式打喀一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有的内容之后。如果该文件不存在,创建新文件进行写入

打开、只读、写入、关闭文件

**open函数:**若文件不存在,则会新建文件
**close函数:**每次用完文件后必关闭
**read函数:**读文件
write函数:

fa=open('a.txt','w')  
Q=fa.read()                  #未制定参数,则读取参数指定个数的数据
print(Q)Q=fa.read(3)                 #指定参数,则读取指定个数(3个)参数
my_content="hello world!第二次写入文件"
fa.write(my_content)
fa.close()

**readlines函数:**一次读取所有行,输出为列表模式

"""
文档中内容: 
aaa
123c
flgkc
"""
f=open('a.txt','r')
content=f.readlines()
print(content)
f.close['aaa\n','123c\n','flgkc\n']        #输出为列表模式,且换行符有标识'''或者采用',并可去\n'''
line=f.readlines()
for i in line:if line[-1]=='\n'print(line[:-1]else:
print(i)f.close
f.close()

**readline函数:**一次读取一行

"""
文档中内容: 
aaa
123c
flgkc
"""f=open(’a.txt‘,'r')
A=f.readline() 
print(A)
B=f.readline() 
f.close()
print(A)aaa                         #第一次调用默认第一行
123c                        #第二次调用跳到下一行

**writelines函数:**一次写多行

f=open('a.txt','w')f.writelines(['aaa\n','bbb\n','ccc\n'])
f.close()

文件拷贝

1.获得需要拷贝的文件名

old_file_name=input('请输入:')
new_file_name=old_file_name+".bk"
  1. 打开新文件
 f_old=open(old_file_name,'rb')
f_new=open(new_file_name,"wb")
  1. 读取要拷贝文件内容
  2. 将老文件内容写到新文件里
old_file_content=f_old.read()
f_new.write(old_file_content)
  1. 关闭新老文件
f_old.close()
f_new.close()

文件重命名

os模块拥有文件相关的指令

import os
os.reneme("hello.txt","aabbcc.txt")

若进行批量修改:
eg.?

remove函数:删除文件
只写 文件名,默认在当前路径
写绝对路径,删除所有

os.remove("abc.txt")

文件夹创建删除等

与linux有些类似:

mkdir、rmdir函数:创建、删除文件夹

os.mkdir("/Users/edwardmeng/Desktop/haha")   #创建文件夹haha
os.rmdir("/Users/edwardmeng/Desktop/haha")   #删除

listdir函数:获得指定目录下的文件类表
getcwd函数:获取当前文件夹位置

content=os.listdir()      #“()”默认当前文件夹
print(content)   c=os.getcwd()             #获得当前文件夹位置      

chdir函数:切换目录

os.chdir("/Users/edwardmeng/Desktop/")  #切换到某绝对路径,再进行下列的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/911782.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/911782.shtml
英文地址,请注明出处:http://en.pswp.cn/news/911782.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java课后习题(编程题)

第一题&#xff1a; import java.util.Scanner;class Test {public static void main(String args[]) {Scanner scnew Scanner(System.in);System.out.println("请输入一个x值&#xff1a;");int xsc.nextInt();int y0;if(x>0){y3*x-1;}else if(x<0){y2*x-1;}e…

Spring--spring事务在什么情况下会失效,以及对应的解决方案

前言 一般失效是使用了Transaction注解的情况下&#xff0c;这篇博客就带你详解一下&#xff0c;哪些情况下注解会失效&#xff0c;在开发过程中要避免这些问题和可以及时发现这些问题&#xff0c;并且知道如何去规避和解决 一、Spring事务的基本原理 在深入了解事务失效的场…

在智慧教育行业中,OPS插拔式电脑启到什么作用

在全球数字化浪潮的推动下&#xff0c;教育行业正经历前所未有的深刻变革。目前&#xff0c;智慧校园已不再是简单的信息化升级&#xff0c;而是涵盖AI、云计算、大数据、物联网等技术的系统性创新。而作为智慧教育发展的助手之一——国产OPS插拔式电脑&#xff0c;能助力传统教…

Windows 配置 Qt 环境变量全指南

Windows 配置 Qt 环境变量全指南 适用于 Qt 5.x / 6.x, MSVC / MinGW, Qt Creator / CLion / CMake GUI 等环境 一. 为什么需要配置 Qt 环境变量 Qt 是一个跨平台 C 开发框架&#xff0c;包含 GUI、网络、SQL、多媒体等模块&#xff0c;安装后自带丰富工具链&#xff0c;如&am…

SpringBoot项目快速开发框架JeecgBoot——项目简介及系统架构!

项目简介及系统架构 Jeecg Boot是一款基于Spring Boot的开发平台&#xff0c;它采用前后端分离架构&#xff0c;集成的框架有Spring Boot 2.x、Spring Cloud、Ant Design of Vue、Mybatis-plus、Shiro和JWT&#xff0c;而且它支持微服务开发。Jeecg Boot还有强大的代码生成功能…

工业设计软件的范式革命:对象模型与五维市场驱动的未来

工业设计软件的技术洗牌本质 破局关键:万物对象模型的应用 工业设计的对象化重构 class IndustrialDesignObject:def __init__(self, obj_type, attributes):self.metadata = {"type": obj_type,"version": "1.0","entropy_rating"…

VMware 安装Windows 虚拟机,Windows 虚拟机可 ping 通本地电脑,但本地电脑无法 ping 通虚拟机 IP 的解决思路和操作步骤

VMware 安装Windows 虚拟机&#xff0c;Windows 虚拟机可 ping 通本地电脑&#xff0c;但本地电脑无法 ping 通虚拟机 IP 的问题如下图所示&#xff1a; 解决办法&#xff1a; 一、网络连接模式与网段一致性 确认虚拟机网络模式 若用 VMware 等软件&#xff0c;常见模式有 NA…

高精度RTK定位导航模块软硬件协同设计

高精度RTK定位导航模块软硬件协同设计 下载链接:摘要1.1 RTK技术背景与发展现状1.1.1 RTK技术原理与背景1.1.2 技术发展里程碑1.1.3 当前技术挑战与突破1.1.4 应用场景扩展1.1.5 标准化进展1.2.1 高精度定位的计算瓶颈1.2.2 功耗优化需求1.2.3 系统可靠性与实时性保障1.2.4 典型…

【软考高级系统架构论文】论多源数据集成及应用

论文真题 在如今信息爆炸的时代,企业、组织和个人面临着大量的数据。这些数据来自不同的渠道和资源,包括传感器、社交媒体、销售记录等,它们各自具有不同的数据格式、分布和存储方式。因此如何收集、整理和清洗数据,以建立一个一致、完整的数据集尤为重要。多源数据集成可…

如何将这些 SQL 插入语句批量执行?

要批量执行这些SQL插入语句&#xff0c;可根据使用的数据库管理系统(DBMS)选择不同的方法。以下是几种常见的批量执行方式&#xff1a; 1. 使用数据库客户端工具 MySQL / MariaDB 命令行&#xff1a;将所有SQL语句保存到文件(如cities.sql)&#xff0c;然后执行&#xff1a; 登…

RedisVL EmbeddingsCache深度实践与最佳指南

一、为什么需要 EmbeddingsCache 减少重复计算 对同一段文本&#xff0c;向量化模型会每次返回相同的嵌入。借助缓存&#xff0c;首次计算后无论后续何时再请求&#xff0c;都能直接复用上次结果。 降低业务延迟 嵌入模型推理耗时&#xff08;数十毫秒到百毫秒不等&#xff09…

Docker Compose 与 Harbor 私有仓库

目录 简介 一、Docker 容器重启策略与状态码解析 &#xff08;一&#xff09;Docker 容器重启策略详解 &#xff08;二&#xff09;Docker 容器常见退出状态码 二、Docker Compose 工具深度应用 &#xff08;一&#xff09;Docker Compose 简介与安装 &#xff08;二&am…

thinkphp8之文件上传

文件上传安装 命令&#xff1a;composer require topthink/think-filesystem 二&#xff0e;上传代码、接收代码 <form action"/index/index/index" enctype"multipart/form-data" method"post"> <input type"file" name…

【商业分析】价值流图应用案例:服务器硬件生产

在当今竞争激烈的市场环境下&#xff0c;服务器硬件制造商面临着诸多挑战。本文中&#xff0c;田辛老师将深入探讨价值流图&#xff08;VSM&#xff09;在某服务器硬件生产中的应用案例&#xff0c;展示其如何助力企业实现降本增效。 一、价值流图概述 &#xff08;一&#x…

系统性能优化-4 磁盘

系统性能优化-4 磁盘 磁盘作为计算机中速度最慢的硬件之一&#xff0c;常常是系统的性能瓶颈&#xff0c;优化磁盘一般能得到明显的提升~ 文章以如何高效的传输文件来讨论针对磁盘的优化技术&#xff0c;如零拷贝、直接 IO、异步 IO等。 最简单的网络传输 最简单的方式的当然…

Windows注册HTTP服务实现Jenkins Allure报告、测试日志永久访问

使用 NSSM (Non-Sucking Service Manager) 将 Allure 报告的 HTTP 服务注册为 Windows 后台服务的详细操作攻略&#xff0c;确保 Jenkins 测试结果可以长期通过 URL 访问。 ✅ 目标 将 allure generate 生成的报告目录托管为静态网页服务&#xff0c;并作为后台服务运行&#…

从ADI与AMD的专利诉讼,看高端FPGA的巅峰对决

RFSoC,作为FPGA家族中的“贵族”,高端芯片中的尖端代表,技术积累要求高、利润厚,售价贵,主要面向不差钱的军用雷达处理、通信和测试/测量仪器用户。 2019年,模拟芯片龙头ADI公司,发起专利侵权诉讼,而尝到甜头的赛灵思,一边反诉,一边揶揄ADI公司:爱哭的娃未必有奶吃…

性能测试-jmeter实战3

课程&#xff1a;B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战3 负载测试稳定性测试负载测试曲线图其他测试策略并发测试压力测试容量测试 性能指标的介绍响应时间并发用户数…

Maven镜像

在 Maven 中配置多个镜像源&#xff0c;主要是为了解决依赖包在不同地区下载速度不同的问题&#xff0c;或者为了使用特定的私有仓库作为依赖源。Maven 支持在 pom.xml 文件中配置多个镜像源&#xff08;repositories&#xff09;&#xff0c;也可以在 Maven 的全局配置文件 se…

ArduPilot 教程(2):运行第一个 SITL 无人机仿真

目录 1. MAVLink 通信协议 2. MAVProxy 地面控制站 3. 运行 SITL 无人机仿真 3.1. 使用 MAVProxy 控制无人机 3.2. 使用 SITL 地图界面控制无人机 4. MAVProxy 常用命令 5. 其它地面控制站 5.1. QGroundControl 5.2. MissionPlanner 5.3. 不启用 MAVProxy 6. 本讲小…