笔记(Pythoon)
Python学习笔记:sys.argv入参

Python学习笔记:sys.argv⼊参⼀、背景执⾏某个 .py 代码⽂件的时候,需要传⼊不同的参数。
例如:根据当天的⽇期通过 sh 脚本传参,便可利⽤ sys.argv ⽅便实现。
⼆、解释sys.argv[] 是⼀个从程序外部获取参数的桥梁,即⾮ .py ⽂件本⾝的参数。
外部所获取的参数可以是多个,因此获得的是⼀个列表(list),使⽤ [] 提取其中的元素。
sys.argv[0] 代表代码本⾝⽂件路径,随后才依次是外部给予的参数。
三、实操通过⼀个简单的 sys_argv.py ⽂件的运⾏结果进⾏说明:# sys_argv.py ⽂件import sysname = sys.argv[0]print(name)⽂件保存在某个⽬录下,例如:D盘根⽬录。
打开”运⾏“,输⼊ cmd 并切换⾄D盘 cd D:\ ,执⾏ sys_argv.py ⽂件。
D:\>python sys_argv.pysys_argv.py # 输出⽂件本⾝名字修改为参数1,并保存:import sysname = sys.argv[1]print(name)并执⾏:D:\>python sys_argv.py 100100 # 输⼊的参数再修改代码为:import sysname = sys.argv[2:]print(name)并执⾏:D:\>python sys_argv.py 100 200 300 400 500['200', '300', '400', '500']四、结论sys.argv 其实就是⼀个列表,第⼀个元素为⽂件本⾝,后⾯的为⽤户输⼊的多个或⼀个参数。
必须保存程序⽂件,再通过外部进⾏执⾏。
参考链接:。
python教程/学习笔记

无论什么情况下,使用UTF-8 才是王道! 1 # -*- coding:utf-8 -*2 2.2.5. 导入 通常应该在单独行中使用导入。 例如:No: import sys, os Yes: import sys import os 但是这样也是可以的: from types import StringType, ListType imports 应该放在文件的顶部,仅在模块注释和文档字符串之后,在模块的全局变量和常量之前。 Imports 也是有顺序的:1)Python 标准库的import;2)第三方库的import;3)自定义的库的import; 并且在每组的import 之间使用一行空行分割。 2.2.6.以下地方不推荐出现空格: 1) 紧挨着圆括号,方括号和花括号的 如:"spam( ham[ 1 ], { eggs: 2 } )".写成"spam(ham[1], {eggs: 2})". 2) 紧贴在逗号,分号或冒号前的 如: "if x == 4 : print x , y ; x , y = y , x". 写成"if x == 4: print x, y; x, y = y, x". 3) 紧贴着函数调用的参数列表前开式括号的 如: "dict ['key'] = list [index]". 写成"dict['key'] = list[index]". 4) 紧贴在索引或切片下标开始的开式括号前 如: "dict ['key'] = list [index]".写成"dict['key'] = list[index]". 5) 在赋值(或其它)运算符周围的用于和其它并排的一个以上的空格,如: 1x=1 2y=2 3 long_variable = 3 写成 1x=1 2y=2 3 long_variable = 3 6)始终在这些二元运算符两边放置一个空格:赋值(=), 比较(==, <, >, !=, <>, <=,>=, in, not in, is, isnot), 布尔运算(and, or, not). 按 你的看法在算术运算符周围插入空格. 始终保持二元运算符两边空格的一致.一些例子: 1 i = i+1 2 submitted = submitted + 1 3 x = x*2 - 1 4 ypot2 = x*x + y*y
《python深度学习》笔记---6.1-2、wordembedding-利用Embedd。。。

《python深度学习》笔记---6.1-2、wordembedding-利⽤Embedd。
《python深度学习》笔记---6.1-2、word embedding-利⽤Embedding 层学习词嵌⼊⼀、总结⼀句话总结:> 【考虑到仅查看每条评论的前 20 个单词】:得到的验证精度约为 76%,考虑到仅查看每条评论的前 20 个单词,这个结果还是相当不错的。
> 【没有考虑单词之间的关系和句⼦结构】:但请注意,仅仅将嵌⼊序列展开并在上⾯训练⼀个 Dense 层,会导致模型对输⼊序列中的每个单词单独处理,⽽没有考虑单词之间的关系和句⼦结构(举个例⼦,这个模型可能会将 this movie is a bomb和this movie is the bomb两条都归为负⾯评论)。
> 【添加循环层或⼀维卷积层】:更好的做法是在嵌⼊序列上添加循环层或⼀维卷积层,将每个序列作为整体来学习特征。
> model.add(Embedding(10000, 8, input_length=maxlen))from tensorflow.keras.models import Sequentialfrom yers import Flatten, Densemodel = Sequential()# We specify the maximum input length to our Embedding layer# so we can later flatten the embedded inputs# 指定 Embedding 层的最⼤输⼊长度,以便后⾯将嵌⼊输⼊展平。
# Embedding 层激活的形状为 (samples, maxlen, 8)model.add(Embedding(10000, 8, input_length=maxlen))# After the Embedding layer,# our activations have shape `(samples, maxlen, 8)`.# We flatten the 3D tensor of embeddings# into a 2D tensor of shape `(samples, maxlen * 8)`model.add(Flatten())# We add the classifier on topmodel.add(Dense(1, activation='sigmoid'))pile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])model.summary()history = model.fit(x_train, y_train,epochs=10,batch_size=32,validation_split=0.2)1、Embedding 层理解?> 【字典:Embedding层实际上是⼀种字典查找】:最好将 Embedding 层理解为⼀个字典,将整数索引(表⽰特定单词)映射为密集向量。
python笔记52-re正则匹配search(groupgroupsgroupdict)

python笔记52-re正则匹配search(groupgroupsgroupdict)前⾔re.search扫描整个字符串并返回第⼀个成功的匹配。
re.findall返回字符串中所有不重叠匹配项的列表,如果没有匹配到返回空list不会报错。
search匹配对象有3个⽅法:group() groups() groupdict() ,这3个⽅法使⽤上会有⼀些差异。
如果只需匹配⼀个,匹配到就结束就⽤search,匹配全部就⽤findallre.search 源码解读search扫描整个字符串并返回第⼀个成功的匹配,如果没匹配到返回None函数参数说明:pattern 匹配的正则表达式string 要匹配的字符串。
flags 标志位,⽤于控制正则表达式的匹配⽅式,如:是否区分⼤⼩写,多⾏匹配等等def search(pattern, string, flags=0):"""Scan through string looking for a match to the pattern, returninga match object, or None if no match was found."""return _compile(pattern, flags).search(string)跟前⾯findall⼀样有三种⽅式import rekk = pile(r'\d+') # 匹配数字res1 = kk.search('one1two2three3four4')print(res1)# <_sre.SRE_Match object; span=(3, 4), match='1'>kk = pile(r'\d+')res2 = re.search(kk,"one123two2")print(res2)# <_sre.SRE_Match object; span=(3, 6), match='123'># 也可以直接在search传2个参数res3 = re.search(r'\d+', "one123two2")print(res3)print(res3.group(0))# <_sre.SRE_Match object; span=(3, 6), match='123'># 123不同的是匹配成功re.search⽅法返回⼀个匹配的对象,否则返回None。
Python笔记

Python笔记1.在Python中数的类型有三种——整数、浮点数和复数。
其中整数类型⼜分为int (有符号整数)、long (长整数)和bool (布尔值)。
复数的例⼦:(-5+4j)。
在Python中不⽤区分’long int’类型,长整数范围仅受限于⽤户计算机的虚拟内存总数。
2.没有仅仅使⽤ASCII的字符串,原因是Unicode是ASCII的超集。
如果要严格使⽤ASCII编码的字节流,可⽤str.encode("ascii")。
默认所有的字符串的编码是Unicode。
(P14 in “A Byte of Python”)3.可以⽤单引号指定字符串,如:4.在双引号中的字符串与单引号中的字符串的使⽤完全相同,如:5.利⽤三引号("""or’’’),你可以指⽰⼀个多⾏的字符串。
你可以在三引号中⾃由的使⽤单引号和双引号,如:将会输出:6.⼀个字符串⼀旦创建,就不能再改变它。
(P16)7.如果把两个字符串按字⾯意义相邻放着,他们会被Python⾃动级连,如:等价于8.format⽅法:输出为:也可⽤字符串连接:来实现9.物理⾏是你在编写程序时所看见的。
逻辑⾏是Python看见的单个语句。
Python假定每个物理⾏对应⼀个逻辑⾏。
默认地,Python希望每⾏都只使⽤⼀个语句,这样使得代码更加易读。
如果你想要在⼀个物理⾏中使⽤多于⼀个逻辑⾏,那么你需要使⽤分号(;)来特别地标明这种⽤法。
分号表⽰⼀个逻辑⾏或语句的结束10.在Python中,每⾏开头的空⽩很重要,其⽤来决定逻辑⾏缩进的层次,从⽽来决定语句分组。
同⼀层次的语句必须有相同的缩进,每⼀组这样的语句称为⼀个块。
如:11.表达式可以被分解成操作符和操作数。
12.Python 也⽀持增量赋值。
如:等价于13.相同优先级的运算符按照从左向右的顺序计算(左结合性);相同优先级的赋值运算符有从右向左的结合顺序(右结合性)。
Pythonturtle学习笔记

Pythonturtle学习笔记⼀、简介Turtle最早来⾃于LOGO语⾔,是专门⽤于⼩孩⼦学习编程的,通过编程模拟⼀只turtle(海龟)在画板上爬⾏绘制图案,后来很多⾼级语⾔都移植了海龟绘图,python从2.6之后也将turtle库加⼊了其内部库中。
由于是内部库,使⽤import turtle语句就能引⼊turtle库,绘图主要有以下⼏个步骤:设置画布、设置画笔、控制海龟移动绘制图形、⾊彩填充等。
⼆、基础知识1)turtle库的引⽤引⽤turtle库主要有以下三种⽅法:1.使⽤import保留字直接引⽤import turtle #每次使⽤函数需加上turtle.2.使⽤from和import保留字共同完成from turtle import * #调⽤函数时不⽤加turtle.,但可能会与变量名重复3.使⽤import和as保留字共同完成import turtle as t #给turtle库起了个别名t2)画布画布即turtle提供的绘图区域,可⽤以下指令设置画布的规模:1.turtle.setup(width,height, startx, starty)width为画布的宽度;heigh为画布的⾼度;(startx,starty)这⼀坐标表⽰矩形窗⼝左上⾓顶点的位置, 如果为空,则窗⼝位于屏幕中⼼。
如:turtle.setup(650,300,100,100)2.turtle.screensize(canvwidth canvheight, bg)canvwidth为画布的宽度;canvheight为画布的⾼度;bg为画布背景颜⾊。
如:turtle.screensize(500,400,"red")3)画笔1、画笔的状态在画布上,默认有⼀个坐标原点为画布中⼼的坐标轴,坐标原点上有⼀只⾯朝x轴正⽅向⼩乌龟。
这⾥我们描述⼩乌龟时使⽤了两个词语:坐标原点(位置),⾯朝x轴正⽅向(⽅向), turtle绘图中,就是使⽤位置⽅向描述⼩乌龟(画笔)的状态。
【python学习笔记】pytorch中的nn.Embedding用法
【python学习笔记】pytorch中的nn.Embedding⽤法本篇博客参考⽂章:embedding词嵌⼊,通俗来讲就是将⽂字转换为⼀串数字。
因为数字是计算机更容易识别的⼀种表达形式。
我们词嵌⼊的过程,就相当于是我们在给计算机制造出⼀本字典的过程。
计算机可以通过这个字典来间接地识别⽂字。
词嵌⼊向量的意思也可以理解成:词在神经⽹络中的向量表⽰。
详细可看pytorch中的embedding输⼊是⼀个索引列表,输出是相应的词嵌⼊torch.nn.Embedding(num_embeddings, embedding_dim, padding_idx=None,max_norm=None, norm_type=2.0, scale_grad_by_freq=False,sparse=False, _weight=None)参数num_embeddings(int):词典的⼤⼩尺⼨,⽐如总共出现5000个词,那就输⼊5000。
此时index为(0-4999)embedding_dim(int):嵌⼊向量的维度,即⽤多少维来表⽰⼀个符号。
padding_idx(int,optional):填充id,⽐如,输⼊长度为100,但是每次的句⼦长度并不⼀样,后⾯就需要⽤统⼀的数字填充,⽽这⾥就是指定这个数字,这样,⽹络在遇到填充id时,就不会计算其与其它符号的相关性。
(初始化为0)max_norm(float,optional):最⼤范数,如果嵌⼊向量的范数超过了这个界限,就要进⾏再归⼀化。
norm_type(float,optional):指定利⽤什么范数计算,并⽤于对⽐max_norm,默认为2范数。
scale_grad_by_freq(boolean ,可选):根据单词在mini-batch中出现的频率,对梯度进⾏放缩。
默认为False.sparse(bool,可选):若为True,则与权重矩阵相关的梯度转变为稀疏张量,默认为False。
python初学者笔记(2):阿拉伯数字转换成中文大写
python初学者笔记(2):阿拉伯数字转换成中⽂⼤写题:输⼊⼀个数字,转换成中⽂⼤写的写法可运⾏的程序(Python 2.7.9):1# -*- coding: utf-8 -*- #在python2的py⽂件⾥⾯写中⽂,必须要添加⼀⾏声明⽂件编码的注释,否则python2会默认使⽤ASCII编码2 dic_num={"0":u"零","1":u"壹","2":u"贰","3":u"叁","4":u"肆","5":u"伍","6":u"陆","7":u"柒","8":u"扒","9":u"玖"}3 dic_unit={0:u"",1:u"拾",2:u"佰",3:u"仟",4:u"万"}45 flag = True67while flag:#保证程序能反复运⾏8 shu = []9 big = ''10 num = raw_input("请输⼊数字(范围在1~99999之间),若输⼊q则退出程序:".decode('utf-8').encode('gbk'))11if num == 'q'or num == 'Q':12 flag = False13elif int(num) < 1 or int(num) > 99999:14print"错误!请输⼊1~99999之间的数字!\n".decode('utf-8').encode('gbk')15continue16else:17 listnum = list(num)18 lennum = len(listnum)-119for item in listnum:20 shu.append(dic_num[item])#先取输⼊数字中的第⼀个数对应的中⽂⼤写加到shu列表⾥,后续循环21 shu.append(dic_unit[lennum])#例:4位数就取dic_unit中3对应的“仟”加到shu的第⼀个数字后⾯,后续循环22 lennum -=123 big = ''.join(shu)24print big.encode('gbk')25print"\n"注:刚刚学习的初级程序写法,有很多不全的地⽅,⽐如:1.输⼊“082”开头是0的数字⼀样会输出“零佰扒拾贰”,应该需要更多的判断语句;2.输⼊“034354”会直接报错,应该没有加异常处理造成的结果。
中职python入门笔记公开课教案教学设计课件案例试卷
逻辑运算符
a=10 b=12 c=a>b print(c) print(not c)
a=10 b=12 c=15 print(c>b and a>b) print(c>b and a<b)
你来试一试
比较运算符和逻辑运算符的结果
都是 ——bool 类型的值
小游戏
num = 10 print('Guess what I think?') answer = int(input())
复习2——Python简单代码练习
• a=2,b=3,求积 • 输出结果如下:
复习2——Python简单代码练习 • a=2,b=3,求积
a=2 b=3 print("a*b=",a*b)
扩展1——Python简单代码练习
• 输入input
– 提示“你叫什么名字?”输入你的名字 – 提示“你是男孩还是女孩?”输入你的性别 – 示“你今年几岁了?”输入你的年龄
a=int(input("请输入一个整数a")) b=int(input("请输入一个整数b")) c=int(input("请输入一个整数c")) print("a>b吗?",a>b) print("a=c吗?",a==c) print("b!=c吗?",b!=c)
你来试一试
逻辑运算符
not 逻辑“非” 如果 x 为 True,则 not x 为 False and 逻辑“与” 如果 x 为 True,且 y 为 True,则 x and y 为 True or 逻辑“或” 如果 x、y 中至少有一个为 True,则 x or y 为 True
Python学习笔记:pandas.read_csv分块读取大文件(chunksize、i。。。
Python学习笔记:pandas.read_csv分块读取⼤⽂件(chunksize、i。
⼀、背景⽇常数据分析⼯作中,难免碰到数据量特别⼤的情况,动不动就2、3千万⾏,如果直接读进 Python 内存中,且不说内存够不够,读取的时间和后续的处理操作都很费劲。
Pandas 的 read_csv 函数提供2个参数:chunksize、iterator ,可实现按⾏多次读取⽂件,避免内存不⾜情况。
使⽤语法为:* iterator : boolean, default False返回⼀个TextFileReader 对象,以便逐块处理⽂件。
* chunksize : int, default None⽂件块的⼤⼩, See IO Tools docs for more informationon iterator and chunksize.测试数据⽂件构建:import pandas as pdimport numpy as npimport osos.chdir(r'C:\Users\111\Desktop')np.random.seed = 2021df_size = 1000 # 10000000df = pd.DataFrame({'a': np.random.rand(df_size),'b': np.random.rand(df_size),'c': np.random.rand(df_size),'d': np.random.rand(df_size),'e': np.random.rand(df_size)})df.head()df.to_csv('data.csv')⼆、指定 chunksize 分块读取⽂件pandas.read_csv 参数 chunksize 通过指定⼀个分块⼤⼩(每次读取多少⾏)来读取⼤数据⽂件,可避免⼀次性读取内存不⾜,返回的是⼀个可迭代对象 TextFileReader 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简明Python教程.chm 第三章 最初的步骤 1. 退出命令行: 如何退出Python提示符 如果你使用的是Linux/BSD shell,那么按Ctrl-d退出提示符。如果是在Windows命令行中,则按Ctrl-z再按Enter。
第四章 基本概念 1. 字符串 a) 使用三引号('''或""") 利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如: '''This is a multi-line string. This is the first line. This is the second line. "What's your name?," I asked. He said "Bond, James Bond." ''' b) 转义符 假设你想要在一个字符串中包含一个单引号('),那么你该怎么指示这个字符串?例如,这个字符串是What's your name?。你肯定不会用'What's your name?'来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。你用\'来指示单引号——注意这个反斜杠。现在你可以把字符串表示为'What\'s your name?'。 另一个表示这个特别的字符串的方法是"What's your name?",即用双引号。类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,你可以用转义符\\来指示反斜杠本身。
值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如: "This is the first sentence.\ This is the second sentence."
等价于"This is the first sentence. This is the second sentence." c) 自然字符串 如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如r"Newlines are indicated by \n"。 d) Unicode字符串 Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。例如,u"This is a Unicode string."。
e) 字符串是不可变的 f) 按字面意义级连字符串 如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,'What\'s' 'your name?'会被自动转为"What's your name?"。
2. 对象 a) 如何编写Python程序 下面是保存和运行Python程序的标准流程。 1. 打开你最喜欢的编辑器。 2. 输入例子中的程序代码。 3. 用注释中给出的文件名把它保存为一个文件。我按照惯例把所有的Python程序都以扩展名.py保存。 4. 运行解释器命令python program.py或者使用IDLE运行程序。你也可以使用先前介绍的可执行的方法。 b) 例4.1 使用变量和字面意义上的常量 # Filename : var.py i = 5 print i i = i + 1 print i
s = '''This is a multi-line string. This is the second line.''' print s 3. 缩进 空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。 第五章 运算符与表达式 1. 运算符与它们的用法 运算符 名称 说明 例子
+ 加 两个对象相加 3 + 5得到8。'a' + 'b'得到'ab'。 - 减 得到负数或是一个数减去另一个数 -5.2得到一个负数。50 - 24得到26。
* 乘 两个数相乘或是返回一个被重复若干次的字符串 2 * 3得到6。'la' * 3得到'lalala'。
** 幂 返回x的y次幂 3 ** 4得到81(即3 * 3 * 3 * 3)
/ 除 x除以y
4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0
得到1.3333333333333333
// 取整除 返回商的整数部分 4 // 3.0得到1.0
% 取模 返回除法的余数 8%3得到2。-25.5%2.25得到1.5
<< 左移 把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1) 2 << 2得到8。——2按比特表示为10
>> 右移 把一个数的比特向右移一定数目
11 >> 1得到5。——11按比特表示为1011,向右移
动1比特后得到101,即十进制的5。
& 按位与 数的按位与 5 & 3得到1。
| 按位或 数的按位或 5 | 3得到7。
^ 按位异或 数的按位异或 5 ^ 3得到6
~ 按位翻转 x的按位翻转是-(x+1) ~5得到6。
< 小于
返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。5 < 3返回0(即False)而3 < 5返回1(即True)。
比较可以被任意连接:3 < 5 < 7返回True。 注意,这些变量名的大写。 > 大于 返回x是否大于y
5 > 3返回True。如果两个操作数都是数字,它们首
先被转换为一个共同的类型。否则,它总是返回False。
<= 小于等于 返回x是否小于等于y x = 3; y = 6; x <= y返回True。
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比较对象是否相等
x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y
返回False。x = 'str'; y = 'str'; x == y返回True。
!= 不等于 比较两个对象是否不相等 x = 2; y = 3; x != y返回True。
not 布尔“非” 如果x为True,返回False。如果x为False,它返回True。 x = True; not y返回False。
and 布尔“与” 如果x为False,x and y返回False,否则它返回y的计算值。 x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。
or 布尔“或” 如果x是True,它返回True,否则它返回y的计算值。 x = True; y = False; x or y返回True。短路计算在这里也适用。
第六章 条件控制语句 1. if语句 __author__ = 'YINLIANG' print 'Hello World' number=23 guess=int(raw_input('Enter an integer: ')) if guess==number: print 'Congratulations, you guessed it.' # New block starts here print "(but you do not win any prizes!)" # New block ends here elif guessprint 'No, it is a little higher than that' # Another block # You can do whatever you want in a block ... else: print 'No, it is a little lower than that' # you must have guess > number to reach here print 'Done' # This last statement is always executed, after the if statement is executed
2. while语句 __author__ = 'YINLIANG' print 'Hello World' number=23 running=True while running: guess=int(raw_input('Enter an integer: ')) if guess==number: print 'Congratulations, you guessed it.' # New block starts here print "(but you do not win any prizes!)" # New block ends here