本文主要介绍Python编程崩溃,非常详细,有一定的参考价值。有需要的朋友可以参考一下。
Python是一种非常流行的脚本语言,它非常强大。它几乎可以做任何事情,比如爬虫、网络工具、科学计算、树莓派、Web开发、游戏等等。同时,无论在哪个平台上,都可以使用Python进行系统编程。
机器学习可以通过一些Python库来实现,比如人工智能常用的TensorFlow。您还可以使用像NLTK这样的Python库进行自然语言处理(NLP)。
本文讨论基本的Python编程,然后是一些Python编程的实际案例。
操作字符串
Python中的String是不可变的,所以不能直接修改。对字符串内容的任何更改都需要新的副本。在Python中使用字符串非常简单。
拼接字符串
str='欢迎' '使用Python '
打印(字符串)
这是字符串串联,也可以将字符串相乘:
重复字符串
str='Python' * 2 print (str)
与非字符串拼接
可以使用str()函数将非字符串值转换为字符串,然后将它们连接起来,如下所示:
str='这是测试号' str(15)
打印(字符串)
搜索子字符串
可以使用find()方法搜索子字符串,如下所示:
str='欢迎使用Python '
print(str.find('Python '))
如果找到字符串“Python ”, find方法将返回该字符串的第一个匹配项。
如果没有找到,则返回-1。
默认情况下,find函数从第一个字符开始搜索,也可以从第n个字符开始搜索,如下所示:
str='欢迎使用Python '
print(str.find('Python ',12))
因为我们从第12个字符开始,找不到单词Python,所以它会返回-1。
获取子字符串
所以我们得到了想要搜索的字符串的索引,现在我们想要打印匹配的字符串。
您可以根据电缆打印字符串,如下所示:
str='第一第二第三'
print(字符串[:2])
print(str[2:])
打印(字符串[3:5])
print(字符串[-1])
第二行中的代码打印第一个和第二个字符,而第三行从第二个字符打印到结尾。注意代码中冒号的位置。从0开始计数。
如果使用负数,将从末尾开始计数。第5行将打印最后一个字符。
替换字符串
您可以按如下方式替换该字符串:
str='这个网站是关于编程的'
str2=str.replace('This ',' That ')
打印(str2)
如果要替换的字符串出现多次,但您只想替换第一次出现的字符串,您可以指定位置:
str='这个网站是关于编程的,我喜欢这个网站'
str2=str.replace('website ',' page ',1)
打印(str2)
第一个词只是被替换了。
去除字符串两端的空格
您可以使用strip方法删除字符串两端的空格,如下所示:
str='这个网站是关于编程的'
print(strip())
您可以使用rstrip只删除最右边的空格,或者使用lstrip删除最左边的空格。
改变字符大小写
在某些情况下,您可能需要更改字符的大小写。
欢迎来到likegeeks
print(str.upper())
print(str.lower())
将字符串转换为数字
前面我学习了使用str()函数将数字转换成字符串,但这并不是Python中唯一的转换函数。此外还有int()、float()、long()等cast函数。
Int()可以将输入的字符串转换成整数,float()函数可以将字符串转换成浮点数。
str='10 '
str2='20 '
打印(str str2)
print(int(str) int(str2))
第3行只是连接了两个字符串,而第4行将两个值相加并输出结果。
字符串计数
可以使用min()查找字符串中ASCII值最小的字符,max()查找最大的字符,len()函数获取字符的总长度。
str='欢迎使用Python '
打印(最小(字符串))
打印(最大长度)
打印(len(str))
迭代字符串
您可以使用for迭代字符串,并分别操作每个字符,如下所示:
str='欢迎来到likegeeks网站'
对于范围内的I(len(str)):
打印(字符串[i])
其中len()函数用于获取字符串的长度。
字符串编码
如果您使用的是Python 3,默认情况下所有字符都以Unicode字符集编码,但如果您使用的是Python 2,则可能需要对字符串进行如下编码:
str='欢迎使用Python '
字符串编码(' utf-8 ')
操作数字
在Python中定义数值变量的方法如下:
a=15
您可以定义整数或浮点数。
浮点数可以用int()函数舍入,如下所示:
a=15.5
print(int(a))
舍入数字
您可以使用round()函数对数字进行舍入:
a=15.5652645
打印(round(a,2))
只需指定要四舍五入的小数位数。
自定义精度的数字
在许多情况下,将使用具有自定义精度的浮点数。
可以处理用户定义的精度数的十进制模块。
像这样导入模块并使用:
从十进制导入*
a=十进制(5.5)
生成随机数
Python中的random模块提供了生成随机数的函数。
随机导入
print(random.random())
生成的随机数在0.0到1.0之间。
您可以根据自己定义的范围生成一个随机数,如下所示:
随机导入
数字=[1,2,3,4,5,6,7]
打印(随机选择(数字))
操作日期和时间
您可以从日期中提取所需的值,如下所示。
导入日期时间
cur_date=日期时间.日期时间.现在()
打印(当前日期)
打印(当前日期.年份)
打印(当前日期)
print(当前日期.工作日())
打印(当前日期.月份)
print(当前日期时间())
您可以获得两个时间或日期之间的差异,如下所示:
导入日期时间
time1=datetime.datetime.now()
time2=datetime.datetime.now()
timediff=时间2 -时间1
print(timediff .微秒())
上例中的timediff变量是一个timedelta类型的对象。您也可以自己创建该对象:
time1=datetime.datetime.now()
time2=datetime.timedelta(天数=3)
时间3=时间1时间2
print(time3.date())
格式化日期和时间
您可以用strftime()格式化日期或时间。
下表指定了一些常见的格式选项:
%y两位数的年份表示法(00-99)
%Y四位数年份表示法(000-9999)
第%m个月(01-12)
一个月中的第%d天(0-31)
24小时制中的% h小时(0-23)
%I 12小时制(01-12)
%M分钟(00=59)
%S秒(00-59)
%a本地简化周名
%A本地整周名称
%b本地简化月份名称
%B本地完整月份名称
%c本地对应的日期表示和时间表示
%j年中的一天(001-366)
相当于当地上午或下午的百分比
%U一年中的周数(00-53)星期日是一周的开始。
%w周(0-6),星期日是一周的开始。
%W一年中的周数(00-53)星期一是一周的开始。
%x本地对应日期表示
%X本地对应时间表示
%Z当前时区的名称。
%%%这个数字本身
导入日期时间
date1=datetime.datetime.now()
print(date 1 . strftime(' % d . % B % Y % I:% M % p '))
从字符串创建日期
您可以使用strptime()函数从字符串创建日期,如下所示:
date 1=datetime . datetime . strptime(" 2015-11-21 "," %Y-%m-%d ")
也可以这样创建:
date1=datetime.datetime(年=2015,月=11,日=21)
处理文件系统
用Python处理文件非常容易。信不信由你,它是任何想要的语言中最简单的。当然,你也可以说Python是最容易做任何事情的语言。
复制文件
Shutil模块包含复制文件的功能。
导入技能
copied _ path=shutil . copy(' my _ file . txt ',' copied_file.txt ')
如果my_file.txt是一个软连接,那么上面的代码会创建copied_file.txt作为一个独立的文件。
您也可以创建软链接的副本,如下所示:
copied _ path=shutil . copy(' my _ file . txt ',' copied_file.txt ',follow_symlinks=False)
移动文件
您可以像这样移动文件:
导入技能
shutil.move('file1.txt ',' file3.txt ')
您也可以使用os模块中的重命名功能来重命名文件,如下所示:
导入操作系统
os.rename('file1.txt ',' file3.txt ')
读写文本文件
可以用open函数打开一个文件,然后用read或write方法读写。
fd=open('file1.txt ')
content=fd.read()
打印(内容)
首先使用open函数打开文件并读取,然后我使用read函数读取文件的内容,最后将获得的内容放入变量content中。
您可以指定read()()函数读取的字节数:
fd.read(二十)
如果文件不太大,可以把全部内容读入一个列表,然后遍历列表打印出来。
content=fd.readlines()
打印(内容[0])
您可以通过指定打开模式来写入文件。有两种写入模式,即写入模式和附加模式。
下面是写模式,会覆盖文件中的旧内容。
fd=open('file1.txt ',' w ')
content=fd.write('您的内容放在这里')
以下是附加模式:
fd=open('file1.txt ',' a ')
content=fd.write('您的内容放在这里')
创建目录
您可以使用os模块中的mkdir函数创建一个新目录,如下所示:
导入操作系统
os.mkdir('。/新文件夹)
如果目录已经存在,将会引发错误。但是不要担心,异常处理将在以后的文章中讨论,这可以帮助您避免此类错误。
访问、修改和创建时间可以分别通过getmtime()、get time()和getctime()获得。
返回的时间格式是Unix时间戳,我们可以将其转换为人类可读的格式,如下所示:
导入操作系统
导入日期时间
tim=os.path.getctime('。/file1.txt ')
print(datetime . datetime . from timestamp(Tim))
迭代文件
您可以使用os模块中的listdir()函数来获取文件:
导入操作系统
files=os.listdir(' . ')
打印(文件)
此外,您可以使用glob模块执行相同的操作:
导入全球
files=glob.glob('* ')
打印(文件)
您可以为glob()设置任何扩展名,例如*。doc来获取所有word文档。
序列化Python对象
这个过程用于将Python对象序列化为字节流,以便以后重用。
您可以使用pickle模块完成此操作:
进口泡菜
fd=open('myfile.pk ',' wb ')
pickle.dump(mydata,fd)
您可以使用load()函数反序列化这些数据,如下所示:
进口泡菜
fd=open('myfile.pk ',' rb ')
mydata=pickle.load(fd)
压缩文件
Python标准库使您能够处理不同格式的压缩文件,如tar、zip、gzip、bzip2。
要处理zip文件,您可以使用zipfile模块:
导入zip文件
my_zip=zipfile。ZipFile('zipped_file.zip ',mode='r ')
print(file.namelist())
您可以将文件压缩为zip格式,如下所示:
导入zip文件
file=zipfile。ZipFile('files.zip ',' w ')
file.write('file1.txt ')
file.close()
您可以使用extractall()方法提取zip包中的文件:
导入zip文件
file=zipfile。ZipFile('files.zip ',' r ')
file.extractall()
file.close()
此外,您可以在附加模式下将文件附加到现有的zip文件,如下所示:
导入zip文件
file=zipfile。ZipFile('files.zip ',' a ')
file.write('file2.txt ')
file.close()
处理gz或bz文件时,可以使用与上述相同的例程。但是,要导入gzip模块或bz2模块。
导入gzip
导入bz2
gz_file=gzip。GzipFile('files.gz ',' r ')
bz_file=bz2。bz2文件(' fiels.bz2 ',' r ')
然后用同样的方法读和写。
你可以使用unrar包来处理rar文件。首先,安装软件包:
pip安装拆卸
然后用同样的方法使用。
导入unrar.rarfile文件
m=unrar . rar file . rar file(' file . rar ')
m.namelist()
米屈肼
解析CSV文件
一个非常有用的包装叫做熊猫。它可以解析CSV和Excel文件,并轻松地从中提取数据。
首先,安装软件包。
pip安装熊猫
然后,您可以在自己的代码中使用它,如下所示:
进口熊猫
data=pandas.read_csv('file.csv)
默认情况下,Pandas将第一列视为每行的标签。如果列索引不是第一列,可以通过传递index_col参数来指定列索引。
如果文档中没有行标签,应该使用参数index_col=False。
要写入CSV文件,可以使用to_csv()方法。
data.to_csv('file.csv ')
解析Excel文件
您可以使用pandas模块中的read_excel()方法来解析excel文件。
data=pd.read_excel('file.xls ',sheetname='Sheet1 ')
如果有多个工作表,您可以像这样加载它们:
ta=pd。ExcelFile('file.xls ')
像这样编写excel文件:
ta.to_excel('file.xls ',sheet='Sheet1 ')
网络和连接
Python有一个socket类,提供了一种通过底层API访问网络的方式。它支持许多网络协议。
导入插座
主机='192.168.1.5 '
端口=5050
m _ sock=socket . create _ connection((主机,端口))
此代码通过端口5050与IP地址为192.168.1.5的主机建立连接。
打开套接字后,就可以发送和接收数据了。
m_sock.sendall(b'Hello World ')
注意,我在字符串前使用了B字符,因为数据需要是字节字符串。
如果发送的数据太大,您应该将其拆分并通过循环发送,如下所示:
msg=b“此处显示更长的消息”
mesglen=len(消息)
总计=0
而总msglen:
sent=m_sock.send(msg[total:])
总数=发送总数
要接收数据,需要告诉recv()方法一次读入多少字节。
data_in=m_sock.recv(2000年)
这是有效的,因为您可以确保发送的消息长度小于2000字节。
如果消息很大,则必须重复发送,直到接收到所有数据块。
buffer=bytearray(b' ' * 2000)
m_sock.recv_into(缓冲)
这里定义了一个空缓冲区,然后将消息写入缓冲区。
从POP邮件服务器接收电子邮件的弹出式菜单模块使您能够与POP服务器通信。
导入获取通行证,弹出式菜单
pop_serv=poplib。POP3('192.168.1.5 ')
pop_serv.user('myuser ')
pop_serv.pass_(getpass.getpass())
Getpass模块可以安全地处理密码。
如果需要安全连接,可以使用POP3_SSL类。
要获得邮件列表和邮件数,您可以这样做:
msg_list=pop_serv.list() #列出消息
msg _ count=pop _ serv . msg _ count()#获取消息计数
处理后,确保关闭所有打开的连接。
pop_serv.quit()
从IMAP邮件服务器接收电子邮件
您可以使用imaplib模块与IMAP邮件服务器通信。
导入imaplib,getpass
my_imap=imaplib。IMAP4('imap.server.com ')
my_imap.login('myuser ',getpass.getpass())
如果您的IMAP服务器上使用了SSL,请应用IMAP4_SSL类。
要获取电子邮件列表,您需要首先执行查询操作:
data=my_imap.search(无,'全部')
然后,通过迭代数据变量中的邮件索引来获得邮件内容。
msg=my_imap.fetch(email_id,'(RFC822)')
最后,不要忘记关闭连接:
my_imap.close()
my_imap.logout()
发送电子邮件
想通过SMTP协议发送电子邮件。可以使用smtplib。
导入smtplib,getpass
my_smtp=smtplib。SMTP(smtp.server.com ')
my_smtp.login('myuser ',getpass.getpass())
如果在SMTP服务器上使用SSL,则应用SMTP_SSL类。
连接后,您可以像这样发送邮件:
from_addr='me@example.com '
to_addr='you@example.com '
msg=' From:me @ example . com \ r \ n to:you @ example . com \ r \ n \ r \ n您好,这是一封测试邮件'
my_smtp.sendmail(发件人地址,收件人地址,邮件)
抓取网页
要与Web服务器通信,需要urllib.request子模块。
导入urllib.request
my _ web=urllib . request . urlopen(' https://www . Google . com ')
print(my_web.read())
提交Web表单
如果要提交Web表单,应该向网页发送POST请求。
导入urllib.request
my_data=b '您的数据放在这里'
my _ req=urllib . request . request(' http://localhost ',data=my_data,method='POST ')
my _ frm=URL lib . request . URL open(my _ req)
打印(my_frm.status)
另外可以使用mechanize或者urllib2模块,实现这个功能的方法有很多。
创建一个微型服务器
套接字类支持侦听连接请求。
导入插座
主机=' '
端口=3535
my_server=socket.socket(socket。AF_INET,socket。袜子_流)
my_server.bind((主机,端口))
my_server.listen(1)
现在您可以接受这个连接请求了:
addr=my_server.accept()
打印('已连接. ',地址)
data=conn.recv(1024)
最后,不要忘记在操作完成后关闭连接。
conn.close()
Python 中的线程
运行并发任务非常有用。Python有一个名为threading的模块,包含一个Thread类。
导入线程
def打印消息():
打印(“邮件从不同的线程打印”)
my_thread=线程。线程(target=print_message)
my_thread.start()
如果函数需要很长时间才能完成,可以用is_alive()方法检查它是否还在运行。
有时,您的线程需要安全地访问全局资源。这时你需要一把锁。
导入线程
数量=1
my_lock=线程。锁定()
def my_func():
全局编号,my_lock
my_lock.acquire()
总和=数字1
打印(总和)
my_lock.release()
my_thread=线程。线程(target=my_func)
my_thread.start()
使用树莓派
Raspberry Pi是一款廉价的单板电脑,在上面可以开发各种有趣的应用。
可以用Python的RPi。GPIO模块,使Raspberry Pi与外部传感器通信。
首先,在您的Raspberry Pi中安装软件包,如下所示:
$ sudo apt-get安装python-dev python-rpi.gpio
然后可以在Python脚本中使用它。您可以将输出写在Raspberry Pi的GPIO总线上:
导入RPi。GPIO作为GPIO
GPIO.setmode(GPIO。板)
GPIO.setup(1,GPIO。OUT,initial=GPIO。低)
GPIO.output(1,GPIO。高)
从Raspberry Pi的GPIO读取数据你可以用RPi从GPIO接口读取数据。GPIO模块,如下图所示:
导入RPi。GPIO
RPi。GPIO.setup(1,GPIO。在)
如果RPi。GPIO.input(1):
打印(“输入高”)
否则:
打印(“输入低”)
以上只是Python基础知识的一小部分,还有很长的路要走。
总结
以上就是边肖给大家介绍的Python编程崩溃。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!
如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。