python的注释符号有哪些_python注释符号-程序员宅基地

技术标签: python的注释符号有哪些  

python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的。下面是小编为您整理的关于python注释符号,希望对你有所帮助。

6c796672e59926cf1cdfec2556c4c109.jpg

python注释符号

python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的。python注释也有自己的规范,在文章中会介绍到。注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。

一、python单行注释符号(#)

井号(#)常被用作单行注释符号,在代码中使用#时,它右边的任何数据都会被忽略,当做是注释。

print 1 #输出1

#号右边的内容在执行的时候是不会被输出的。

二、批量、多行注释符号

在python中也会有注释有很多行的时候,这种情况下就需要批量多行注释符了。多行注释是用三引号''' '''包含的

python正则表达式的注释方法

学过正则都知道,那简直是天书,为了提高正则的可读性,正则表达式中提供了X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。

例如:

import re

str = 'python regex'

pattern = re.compile(r'''

(w+) # first word

s(w+) # second word

''', re.X)

match = re.match(pattern,str)

if match:

print "%s %s"%(match.group(2),match.group(1))

其实,由于在python语法里,小括号里面的字符串是可以分行写,所以我们也可以不用X模式来写正则表达式的注释:

import re

str = 'python regex'

pattern = re.compile(r'(w+)' #first word

r' (w+)' #second word

)

match = re.match(pattern,str)

if match:

print "%s %s"%(match.group(2),match.group(1))

大家可以根据自己的爱好来给自己的正则注释起来。

用Python将注释行和空行去掉

比如要将/etc/httpd/conf/httpd.conf的注释行和空行去掉并且打印,用一行命令就可以做到:

egrep -v ‘^#|^$’ /etc/httpd/conf/httpd.conf。但这里练习用Python实现

#!/usr/bin/env python

#coding: utf8

import os

def dellines():

#os模块调用linux命令,cp是为了避免alias里面的cp -i,强制复制文件,不询问是否覆盖

os.system('cp -r -f /etc/httpd/conf/httpd.conf .')

f = file('httpd.conf')

linenum = 0

while True:

data = f.readline()

if data == '':

break

else:

#第一个字符为#或者是换行符,就pass,否则就打印这一行

if (data[0] == '#') or (data[0] == 'n'):

pass

else:

linenum += 1

print linenum, data ,

f.close()

if __name__ == '__main__':

dellines()

Python去掉文件中空行

# coding = utf-8

def clearBlankLine():

file1 = open('text1.txt', 'r', encoding='utf-8') # 要去掉空行的文件

file2 = open('text2.txt', 'w', encoding='utf-8') # 生成没有空行的文件

try:

for line in file1.readlines():

if line == 'n':

line = line.strip("n")

file2.write(line)

finally:

file1.close()

file2.close()

if __name__ == '__main__':

clearBlankLine()

利用PYTHON的正则表达式去掉代码中的注释

校招时,百度二面的时候,让我写一个删除代码中的注释的代码,当时卡壳了。时隔一年多,想起这个问题,现在把这个写下来。

先说一下代码的思想,首先将“字符串”进行替换,替换成 uuid ,并且把字符串的内容存起来。_map是作为字典,uuid作为key,字符串内容作为value。

然后再把// 和 /**/ 进行替换

最后输出到文件中

import re

import uuid

fdr = open("input.c", 'r')

fdw = open("output.c", 'w')

_map = { }

outstring = ''

line = fdr.readline()

while line:

while True:

#这里要注意,我用的是re.S 比如print("aaan")

m = re.compile('".*"', re.S)

_str = m.search( line )

#如果没匹配成功,就合并,然后下一行

if None == _str:

outstring += line

break

key = str( uuid.uuid1() )

#

m = re.compile('".*"', re.S)

outtmp = re.sub(m, key, line, 1)

line = outtmp

_map[ key ] = _str.group(0)

line = fdr.readline()

m = re.compile(r'//.*')

outtmp = re.sub(m, ' ', outstring)

outstring = outtmp

m = re.compile(r'/*.*?*/', re.S)

outtmp = re.sub(m, ' ', outstring)

outstring = outtmp

for key in _map.keys():

outstring = outstring.replace(key, _map[key])

fdw.write(outstring)

fdw.close()

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39994270/article/details/110315572

智能推荐

Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖_flink cdc 分库分表-程序员宅基地

文章浏览阅读3.5k次。在 OLTP 系统中,为了解决单表数据量大的问题,通常采用分库分表的方式将单个大表进行拆分以提高系统的吞吐量。但是为了方便数据分析,通常需要将分库分表拆分出的表在同步到数据仓库、数据湖时,再合并成一个大表。这篇教程将展示如何使用 Flink CDC 构建实时数据湖来应对这种场景,本教程的演示基于 Docker,只涉及 SQL,无需一行 Java/Scala 代码,也无需安装 IDE,你可以很方便地在自己的电脑上完成本教程的全部内容。接下来将以数据从 MySQL 同步到 Iceberg[1] 为例_flink cdc 分库分表

(1.2)、MyBatis介绍及其环境搭建-程序员宅基地

文章浏览阅读197次。MyBatis介绍:数据库持久化概念:数据库持久化将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中数据模型的统称。例如,文件的存储、文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。MyBatis框架简介:  MyBatis的前身是iBatis,本是Apche的一个开源项目,2010年这个项目有..._mybatis介绍及其环境搭建

微信js浏览器查看网络状态_微信游览器判断网络状态-程序员宅基地

文章浏览阅读3k次。window.onload = function() { document.addEventListener("WeixinJSBridgeReady", onWeixinReady, false); }function onWeixinReady() { WeixinJSBridge.invoke('getNetworkType',{}, function(e){ WeixinJSBr_微信游览器判断网络状态

堆溢出问题快速调试_reuse delay of heap object-程序员宅基地

文章浏览阅读349次。首先来看下问题代码,这里最后的空字符发生了溢出。来看一下出现的问题以及如何调试。上面写明是堆链中第41个堆块且地址在0x00382a700出发生了错误。这种情况下别急着终止,点击重试就会断在出问题的位置。点重试后断到了这里往上拉一拉,寻找函数名,或者直接查看调用堆栈发现是断在_free_dbg函数中,这个函数是free()的底层,所以可以断定一定是释放的时候出了问题直接在free()函数上下断点然后运行过去,发现第41块堆块的下溢标志受损了。就是strcpy导致的。_reuse delay of heap object

Java 知识点总结篇(3)_java程序设计基础第三章知识总结 site:blog.csdn.net-程序员宅基地

文章浏览阅读298次。抽象类使用规则 abstract定义抽象类;abstract定义抽象方法,只有声明,不需要实现;包含抽象方法的类是抽象类;抽象类中可以包含普通方法,也可以没有抽象方法;抽象类不能直接创建,可以定义引用变量; 接口定义:一种特殊的类,由全局常量和公共的抽象方法所组成;类是一种具体实现体,而接口定义了某一批类所要遵守的规范,接口不关心这些类的内部数据,也不关..._java程序设计基础第三章知识总结 site:blog.csdn.net

如何应对保研面试_半导体所保研面试-程序员宅基地

文章浏览阅读6.9k次。保研只有复试,没有初试,因此,几分钟的面试就可以完全决定自己的命运。因此,这一环是最重要的环节。  首先,在面试前,应该和自己报考的老师进行沟通,以获得一个较好的印象,同时了解将来读研时的大概内容。笔者在面试前一天,与报考的导师进行了约20分钟的交流,就向他大概说了下自己的学术志向,并问了老师的具体研究方向与要求。  很多学校都要求笔试,先谈一下笔试要点(只能以中科院半导体研究所为_半导体所保研面试

随便推点

Linux系统中rpm命令安装软件,报错:This program may be freely redistributed under the terms of the GNU GPL-程序员宅基地

文章浏览阅读1.8w次。遇到问题:This program may be freely redistributed under the terms of the GNU GPLUsage: rpm {–help}rpm {–version}解决办法:rpm -ivh XXX.rpm –nodeps –force注:转载至 https://blog.csdn.net/wanglf1986/article/..._this program may be freely redistributed under the terms of the gnu gpl

(五)synchronized和ReentrantLock_用synchnized 和reentrulock-程序员宅基地

文章浏览阅读394次。一、synchronized简介synchronized是关键字,用来实现同步锁,非公平锁,可重入锁公平锁:是按照锁申请的顺序来获取锁,线程直接进入同步队列中排队,队列中的第一个线程才能获得到锁。非公平锁:非公平锁是线程申请锁时,直接尝试加锁,获取不到才会进入到同步队列排队。如果此时该线程刚好获取到了锁,那么它不需要因为队列中有其他线程在排队而阻塞,省去了CPU唤醒该线程的开销。而对于已经在同步队列中的线程,仍然是按照先进先出的公平规则获取锁~什么是可重入?同一个线程可以反复获取锁多次,_用synchnized 和reentrulock

abaqus与matlab联合仿真_matlab调用abaqus-程序员宅基地

文章浏览阅读1.2w次,点赞7次,收藏80次。abaqus与matlab联合仿真 取材于2020.11的资料,文档整理于2021.2.7引:启动abaqus license如果运行abaqus报错如下图:则点击abaqus licensing,选择第四个【Start/Stop/Reread】,点击第一个按钮【Start Server】,下方显示框中显示【Server Start Successful.】,再次打开abaqus ACE即可,如果还是报错就再开一次。abaqus licensing界面:正常打开的abaqus提示框:_matlab调用abaqus

Messenger进行IPC通信_messenger ipc dead 检测-程序员宅基地

文章浏览阅读213次。Messenger进行IPC通信实例_messenger ipc dead 检测

课程学习--算法总结:编程基础(第1期)--ACM模式基本输入输出_acm模式如何编程-程序员宅基地

文章浏览阅读110次。一、 基本定义import java.util.*;import java.io.*;/** * @className: Main * @description: ACM模式相关模板 * @author: Charlie * @create: 2022/4/25 10:56 */public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(Sys_acm模式如何编程

phpcms V9支持采集https网页的修改方法_phpcms v9 ssl-程序员宅基地

文章浏览阅读316次。不知道有没有小伙伴在使用PHPCMS V9系统的时候,在采集网页内容时,有些网页可以采集,有些网页不能采集,经过分析,小编得出结论是,http前缀的网页是可以采集的,但是通过SSL加密的HTTPS网页就无法采集,怎么办呢?_phpcms v9 ssl

推荐文章

热门文章

相关标签