热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2021年9月14日Python学习心得分享(大部分内容为转载)

字符串1.双引号单引号标识与作为字符串本身功能的重合例如:print(were)此行代码会出现错误,编译器本身对字符串的识别规定与特殊字符字符串本

字符串

1. 双引号单引号标识与作为字符串本身功能的重合

例如:

print('we're')

 此行代码会出现错误,编译器本身对字符串的识别规定与特殊字符字符串本身功能重合

同样的问题也会出现在C++里面

Python 里面的解决方法有如下几种

1.

print('we\'re ')
//增加转义字符

 2.

print("we're ")
//双引号中间的单引号依然被视为字符串

3.

print('''we're "''')
//三引号中间的双引号和单引号均被视为字符串

 Python 输出换行符

 在Python中三引号可以输出换行符

print('''we're "''')

C++里面的解决方法如下

 1. 可使用转义字符

int main()
{string str &#61; "\"Working hard for my baby bunny\"";cout <}
\\printf&#xff1a;"Working hard for my baby bunny"
\\C&#43;&#43;使用转义字符这种方法在python里面通用

2. C&#43;&#43;11之后支持原始字符串

//c&#43;&#43;11 之后支持原始字符串(raw string)&#xff0c;可以不用转义
printf(R"("Working hard for my baby bunny")")

C&#43;&#43;输出换行符

printf("\n")
//换行符

字符串拼接

Python

print("apple"&#43;"origin")

C&#43;&#43;

char * strcat (目标字符串,源字符串);//将源字符串的副本附加到目标字符串上&#xff0c;目标字符串中的终止空字符由源字符串的第一个字符覆盖&#xff0c;并将这两个字符串连接形成的新字符串&#xff0c;末尾包含一个空字符

concatenate  串联

#include
#include
//字符串联
int main ()
{char str[80];strcpy (str,"these ");strcat (str,"strings ");strcat (str,"are ");strcat (str,"concatenated.");puts (str);return 0;
}

Python对于数字字符串的强制转换

print(float(&#39;1.0&#39;)) //这是正确的
print(int(&#39;1.0&#39;)) //这是错误的

Python对于多个变量的赋值

a,b,c&#61;1,2,3
print(a,b,c)

for的隔位输出

for i in range(1,10,2):print(i)

Python的三者判断条件

x&#61;1
y&#61;2
z&#61;3
# Python的三者判断
if x

Python的三者判断的是通过先判断前一半&#xff0c;再判断后一半

if x!&#61;y<3:print("Equal !")

 Python的函数默认值

def sale_car(price&#61;&#39;10086&#39;,colour&#61;&#39;red&#39;,brand&#61;&#39;carmy&#39;,is_second_hand&#61;True):print(&#39;price:&#39;,price,&#39;colour&#39;,colour,&#39;brand&#39;,brand,&#39;is_second_hand&#39;,is_second_hand)

Pyhon程序的返回值

# 函数的返回值
def fun():a&#61;10print(a)return a&#43;10
print(fun())

Python 中的函数对全局变量的引用

a&#61;None
def fun():global aa&#61;20&#43;20print(a)
fun()
print(a)

安装模块&#xff1a; 

1. pip3  install [模块名]    使用时候有提示  安装某个版本的模块

        示例

        pip3 install numpy-1.9.2

2. Linux下可能需要 sudo 权限

Python 读写文件

写入文本

# Python简单的文件写入
text&#61;&#39;This is angel!\n This is a good man!&#39;
my_file&#61;open(&#39;myfile.txt&#39;,&#39;w&#39;)
my_file.write(text)
my_file.close()

附加文本

# Python文本附加
append_text&#61;"\nI love you !"
my_file&#61;open(&#39;myfile.txt&#39;,&#39;a&#39;)
my_file.write(append_text)

逐行读取文本

# 按行读出文本里的列表并且存储成List元素
file&#61;open(&#39;myfile.txt&#39;,&#39;r&#39;)
content&#61;file.readlines()
print(content)

类与方法

其中init 可以创建被修改的变量&#xff0c;类似于参数的输入

class Caculator:# 固有属性name&#61;&#39;Good caculator&#39;price&#61;18#初始的属性及功能def __init__(self,name,price,hight,width,weight):# 给定属性&#xff0c;self.name&#61;nameself.price&#61;priceself.hi&#61;hightself.wi&#61;widthself.we&#61;weightdef add(self,x,y):# print(self.name)result&#61;x&#43;yprint(result)def minus(self,x,y):result&#61;x-yprint(result)def times(self,x,y):print(x*y)def divide(self,x,y):print(x/y)
caculator&#61;Caculator()
# caculator.name
print(caculator.add(10,11))
print(caculator.minus(10,11))
print(caculator.divide(10,11))
print(caculator.times(10,11))

 Python 数学运算 与 位运算  [数字]//[数字]是整数运算

9//4 #返回商的整数部分

位运算(应该特别注意&#xff0c;2^2是按位异或&#xff0c;不是幂)

#位运算符
2^2 #按位异或
2&2 #与运算
2|2 #或运算
~2 #非运算
<<#左移动运算符
>> #右移动运算符

Python 生成器 yield会节约运行内存&#xff0c;加上for 可以实现性能换内存&#xff0c;至于换的值不值&#xff0c;我觉得在大部分的情况下是值得&#xff0c;但是与for &#43; next结合后&#xff0c;函数复杂度由o(1)编程o&#xff08;n&#xff09;因此可能出现以下几种情况

1. 当使用到顺序处理的列表的时候&#xff0c;这种方法一定是值的

2.当使用到索引的时候&#xff0c;这种方法会带来一定的损失&#xff0c;因为不断的next会提升时间复杂度&#xff0c;但在一些情况下依然节约了很大的内存&#xff0c;使用与否视情况而定。

Python List多维列向量

a&#61;[1,2,3,5,55,745,88,55]
#插入元素
a.insert(1,55)# list的索引&#xff08;第一次出现的索引&#xff09;
print(a.index(55))#list里面的数目
print(a.count(55))#排序
a.sort(reverse&#61;True)
print(a)#list倒序索引(负数&#xff09;
print(a[-1])

多维List

muti_dim_a&#61;[[1,2,3],[4,5,6],[7,8,9]]
print(muti_dim_a[0])

Python 调用自己写的模块

solution 1&#xff1a;在同一个文件夹内&#xff0c;另一个py脚本直接 import

solution2&#xff1a;把需要调用的脚本放到Lib/site_pakages里面当作普通默认模块调用

Python循环中的  break 和continue &#xff0c;break打破此层循环&#xff0c;continue 提前结束此次循环

Python 中的错误处理

为了程序具有极好的容错性、让程序更加健壮。程序出错时候 系统会生成一个错误来通知通知陈旭&#xff0c;从而实现将“业务实现代码”和“错误处理代码”分离提供更好的可读性


s &#61; input(&#39;请输入除数:&#39;)
try:result &#61; 20 / int(s)print(&#39;20除以%s的结果是: %g&#39; % (s , result))
except ValueError:print(&#39;值错误&#xff0c;您必须输入数值&#39;)
except ArithmeticError:print(&#39;算术错误&#xff0c;您不能输入0&#39;)
else:print(&#39;没有出现异常&#39;)

import sys
try:a &#61; int(sys.argv[1])b &#61; int(sys.argv[2])c &#61; a / bprint("您输入的两个数相除的结果是&#xff1a;", c )
except IndexError:print("索引错误&#xff1a;运行程序时输入的参数个数不够")
except ValueError:print("数值错误&#xff1a;程序只能接收整数参数")
except ArithmeticError:print("算术错误")
except Exception:print("未知异常")

 分组错误归类括号内&#xff08;&#xff09;

import sys
try:a &#61; int(sys.argv[1])b &#61; int(sys.argv[2])c &#61; a / bprint("您输入的两个数相除的结果是&#xff1a;", c )
except (IndexError, ValueError, ArithmeticError):print("程序发生了数组越界、数字格式异常、算术异常之一")
except:print("未知异常")

程序访问异常信息   [异常信息访问]

def foo():try:fis &#61; open("a.txt");except Exception as e:# 访问异常的错误编号和详细信息print(e.args)# 访问异常的错误编号print(e.errno)# 访问异常的详细信息print(e.strerror)
foo()

Python 中的 else模块的使用

# 是否采用 else模块要根据其场景来看&#xff0c;其中 else代码块中的异常不会被捕获&#xff0c;放在try里面会被捕获&#xff0c;我认为其中最大的额可利用的地方在于代码段异常的定位更宽了&#xff0c;在else_test中使用的话&#xff0c;要在后面增加try except判断更利于精确定

finally 子句常用于定义 无论在任何情况下都会执行的清理行为。若一个异常在 try 子句里 (或在 except 子句和 else 子句里) 被抛出&#xff0c;而又没有任何的 except 子句将其捕获&#xff0c;那么该异常 将会在 finally 子句执行后被抛出。例如

>>> try:fin &#61; open(&#39;oneline.txt&#39;)print(&#39;Everything goes well!&#39;)
except FileExistsError:print(&#39;There is a FileExistsError!&#39;)
except FileNotFoundError:print(&#39;There is a FileNotFoundError!&#39;)
else:print(fin.readlines())fin.close()
finally:print("Operations are Finished!")Everything goes well!
[&#39;I Love Python!&#39;]
Operations are Finished!

参考文章  【Python】详解 try-except-else-finally 语句 —— 异常处理完全解读 (上)_闻韶-CSDN博客

   Python try except else&#xff08;异常处理&#xff09;用法详解 (biancheng.net)

pickle文件写入与读取

使用 open的话&#xff0c;后面需要 close&#xff08;&#xff09;

使用with  open as 就不用close&#xff08;&#xff09;

file&#61;open(&#39;pickle_example.pickle&#39;,&#39;rb&#39;)
a_dict222&#61;pickle.load(file)
file.close()
print(a_dict222)with open(&#39;pickle_example.pickle&#39;,&#39;rb&#39;) as file:a_dict222 &#61; pickle.load(file)print(&#39;with结果:&#39;,a_dict222)


推荐阅读
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • PL2303HXD电路图(USB转UART)介绍及应用
    本文介绍了PL2303HXD电路图(USB转UART)的特性和应用,该电路图可以实现RS232和USB信号的转换,方便嵌入到手持设备中。PL2303HXD作为USB/RS232双向转换器,可以将USB数据转换为RS232信息流格式发送给外设,并将RS232外设的数据转换为USB数据格式传送回主机。通过利用USB块传输模式和自动流量控制,PL2303HXD能够实现更高的数据传输吞吐量比传统的UART端口。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • 本文介绍了协程的概念和意义,以及使用greenlet、yield、asyncio、async/await等技术实现协程编程的方法。同时还介绍了事件循环的作用和使用方法,以及如何使用await关键字和Task对象来实现异步编程。最后还提供了一些快速上手的示例代码。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
author-avatar
醉酒戏紅顔X
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有