python自带的解释器叫做_python学习

一、PYTHON中的元素

1.基本元素

运算符: + - * / %等等

除法:

" / " 表示浮点数除法,返回浮点结果;

" // " 表示整数除法,返回不大于结果的一个最大的整数

运算顺序:先乘除 再加减 括号最优先

变量:就是一个标签:,由非数字开头的字母、数字、下划线组成,它的内容可以是数值、字符串、列表、元组和字典。

数值,就是数字。如a = 100

字符串,就是用一对双引号、或单引号引起来的内容,只要被引号引起来,就是字符串了。

如: b = ”Hello World”

100是数值,而 ”100”是字符串。

转义字符

\t 表示 tab                    \n 表示 换行

%s 占位,用%后的变量替换

如:

a = 100

b = ” HelloWorld ”

print (” point = %s \n \” %s   \” ”  % (a, b)  )

打印出:

point=100

” HelloWorld ”

2.列表

例如:

c = [1,2,3,4,5,6,7]

d = [”张三”,”李四”,”王五”]

e =[1,2,3,”4”,”5”,d]

用 列表名[索引号] 索引列表中的元素

d[0]表示列表d中的第1个元素“张三”

用列表名[起 : 止]表示切片,从列表中切出相应的元素 前闭后开

c[0:2] 切出 [1,2]

c[ : ] 切出[1,2,3,4,5,6,7]

用列表名[起 : 止: 步长] 带步长的切片,步长有方向。

如c = [1,2,3,4,5,6,7] ,若切出 [5,4,3,2] 用c[4 :0 :-1]  ; 切出[5,4,3,2,1]用 c[4 ::-1] ;切出 [6,4,2] 用 c[-2 ::-2]; 从倒数第二个开始一直切到头,步长-2

修改:列表名 [ 索引号 ] = 新值

删除:del 列表名[ 索引号 ]

插入: 列表名.insert(插入位置索引号,新元素)

3.元组

一旦定义不能改变

f=(1,2,3)

4.字典

字典里放着 {键:值, 键:值, 键:值} n 个键值对

dic={1:”123”,”name”:”zhangsan”,”height”:180}

用字典名[ 键 ] 索引字典中的值

dic[”name”] 表示字典dic 中键”name”对应的值”zhangsan”

修改:字典名 [ 键 ] = 新值

删除:del 字典名[ 键 ]

插入:字典名[ 新键 ] = 新值

二、python语法

Python 代码是使用四个空格的缩进表示层次关系的

条件语句

一般用法

例如:

if a==1:

print(a)

else:

pass                        # pass指不做任何处理

有多个判断条件时

例如:

if a==1 or b==1:           # 用 or 和 and 连接

print(a)

else

pass

循环语句

for 变量 in range (开始值,结束值)       例如:

for 变量 in 列表名    如:

M = ['a', 'p', 'o']

for i in M:

while   条件:

终止循环用 break

函数

函数(function):组织好的,可重复使用的,用来实现单一或相关联功能的代码段。

比如input()就是一个函数,可以直接使用函数,不用每次重新定义如何从控制台接收输入,所以函数是帮助实现代码复用的。

定义函数:def    函数名   (参数表):

函 数 体括号里的参数如果不需要可以为空

使用函数:函数名 (参数表)

如 :input("please input your class number:")

定义:def hi_name(yourname):

print ”Hello %s”%yourname 使用:hi_name(”zhangsan”)

会输出:Hello zhangsan

函数返回值: return

def add(a,b):

return a+b

c=add(5,6)               # c 被赋值为 add的返回值 11

模块

模块(module):是一个 Python 文件,以.py 结尾,包含了 Python 函数等语句。先导入,再使用,用模块.函数名调用。

例如1:

import time

time.asctime ( )

输出:'Tue Jan 1621:51:06 2018'

例如2:

import turtle # 导入 turtle 模 块

t = turtle.Pen ( ) #用 turtle 模块中的 Pen 类,实例化出一个叫做 t 的对象

t.forward (像素点)  #让 t 向前走多少个像素点

t.backward (像素点)  #让 t 向前走多少个像素点t.left (角度)         #让 t 左转多少角度 t.right (角度)        #让 t 右转多少角度t.reset ( ) # 让 t 复 位

包含有多个模块,如:from PIL import Image

变量作用域

局部变量:在函数中定义的变量,只在函数中存在,函数执行结束不可再用。全局变量,在函数前定义的变量,一般在整个代码最前面定义,全局可用。

三、类、对象和面向对象的编程

类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。物以类聚人以群分,类是可实例化出对象的模具。

实 例 化 : 对 象 = 类()  如:t = turtle.Pen()

对象:是类实例化出的实体,对象实实在在存在,完成具体工作。

面向对象:程序员反复修改优化类,类实例化出对象,对象调用类里的函数执行具体的操作。

例如在上图中,有动物、哺乳动物和猫。 动物是一个类,他们具有共同的功能:呼吸、移动和吃东西。哺乳动物也是一个类,他们是动物类里的子类,是在动物类的基础上多了喂奶的功能。猫是哺乳动物类的一个子类,猫类在哺乳动物的基础上多了捉老鼠的功能。

类命名时第一个字母常大写,比如 Animals、Mammals 和 Cats 的首字母都大写了。这些类的右侧列出了每个类具有的功能:比如呼吸、移动和吃东西是动物这个类具备的功能,在计算机中用函数的形式表示。喂奶是哺乳动物的功能,是哺乳动物这个类里的函数。捉老鼠是猫类具有的功能,是猫类的函数。

√上面的类是下面类的父类;下面类是上面类的子类

√子类实例化出来的对象,可以使用自身和父类的函数与变量

类的定义:

class 类名 (父类名) :

pass

如果有父类,写在类名后面的括号里;如果没有父类,可以不写括号了。用关键词 pass 占个位置,之后再用具体函数把类补充完整。

举例:classAnimals:

pass

classMammals(Animals):

pass

classCats(Mammals):

pass

类里定义函数时,语法规定第一个参数必须是 self 。

init__函数,在新对象实例化时会自动运行,用于给新对象赋初值。

(1)将猫类实例化出一个叫 kitty 的对象,kitty 有自己的特征属性,比如身上有 10 个斑点:

kitty = Cats(10)        #实例化时运行init函数,给 spots 赋值,告知 kitty 有 10 个斑点

print”kitty.spots” #打印出 10

(2)kitty 可以做具体的工作,比如捉老鼠:

kitty.catch_mouse()#对象运行函数,必须用对象.函数名,调用类里的函数

#会运行 print ”catch mouse” 故打印出catch mouse

对象调用类里的函数,用对象.函数名;

对象调用类里的变量,用对象.变量名。

类内定义函数时,如调用自身或父类的函数与变量,须用self.引导, 应写为 self.函数名或 self.变量名。

代码验证:

补充:

Python 中虽然没有访问控制的关键字,例如 private、protected 等等。但是,在Python 编码中,有一些约定来进行访问控制。

单下划线、双下划线、头尾双下划线说明:

_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 frommodule import *

foo:双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。

foo__: 头尾双下划线定义的是特列方法,类似init() 之类的。

四、文件操作

文件写操作

import pickle

开:文件变量= open(”文件路径文件名”, ”wb”)

存:pickle.dump(待写入的变量,文件变量)

关:文件变量.close()

代码验证:

文件读操作

import pickle

开:文件变量= open(”文件路径文件名”, ”rb”)

取:放内容的变量 =pickle.load(文件变量)

关:文件变量.close()

代码验证:

五、编程中的一些问题

全局变量自增自减的问题

目标是实现一个全局累加的功能,但python中没有static类型,调用全局变量老出错,最后通过在另一个py文件中定义该全局变量,本py文件中叫用该变量实现自增自检。

参考链接:https://www.jb51.net/article/154501.htm

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

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

相关文章

IE打印空白

今天碰到HR经理碰到一个问题,就是windows 7 64位操作系统,但是打印空白,打印出来像白纸一样!经过查看和总结,确认是:由于保护模式下 %Temp%\Low 文件夹工作不正常引起的!故障打印白纸下面会出现…

Python Matplotlib.plot Update image Questions

1. 最近在测试一款设备,采集了一些设备后需要一帧一帧显示图像,经常使用Python,所以选用了Matplotlib进行图像操作 数据结构: timesatamp polar_distance horizontal_angle refelectivity_intensity,所有数据类型都是 float,储存在…

深度学习之 RBF神经网络

RBF神经网络通常只有三层,即输入层、中间层和输出层。其中中间层主要计算输入x和样本矢量c(记忆样本)之间的欧式距离的Radial Basis Function (RBF)的值,输出层对其做一个线性的组合。 径向基函数: RBF神经网络的训练…

redis 队列_Redis与Rabbitmq消息队列的区别

将redis发布订阅模式用做消息队列和rabbitmq的区别:可靠性 redis :没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中;rabbit…

EasyUI中那些不容易被发现的坑——EasyUI重复请求2次的问题

问题控件:datagrid、combobox、所有能设置url属性的控件 问题版本:1.4.4、1.4.5(之前的版本没测) 问题如图: 重复请求2次,错误代码如图: 错误问题分析:html加载的时候回请求url加载数…

GCC编译的背后( 预处理和编译 汇编和链接 )

发表于 2010年05月18日 22:01 分类: 编程coding统计: 1评/465阅 2人收藏此文章&#xff0c; 收藏此文章(?)by falcon<zhangjinwgmail.com> 2008-02-22 平时在Linux下写代码&#xff0c;直接用"gcc -o out in.c"就把代码编译好了&#xff0c;但是这后面到底做了…

ElasticSearch Java API

ElasticSearch-Java Client类型 ElasticSearch-TransportClient环境准备 ElasticSearch-TransportClient连接 ElasticSearch-Document APIs ElasticSearch-搜索-原理 ElasticSearch-搜索-问题 ElasticSearch-搜索-问题解决思路 ElasticSearch-搜索-SearchType-类型一 E…

深度学习之卷积神经网络(Convolutional Neural Networks, CNN)

前面, 介绍了DNN及其参数求解的方法(深度学习之 BP 算法),我们知道DNN仍然存在很多的问题&#xff0c;其中最主要的就是BP求解可能造成的梯度消失和梯度爆炸.那么,人们又是怎么解决这个问题的呢?本节的卷积神经网络(Convolutional Neural Networks, CNN)就是一种解决方法. 我们…

Oracle DBA课程系列笔记(16)

第十六章&#xff1a; 用户管理 1、schema &#xff1a; user.object &#xff0c;用户认证方式&#xff1a;os 认证&#xff0c;database 认证 2、建立 database认证的用户&#xff1a; 10:00:48 SQL> create user rose …

python序列是几维_从一个1维的位数组获得一个特定的2维的1序列数组[Python] - python...

我正在使用Python&#xff0c;我需要找到执行以下任务的最有效方法。任务&#xff1a;给定零和一的任何一维数组v&#xff0c;用k> 0表示v的所有一维的子序列数。我需要从v获得一个二维数组w&#xff0c;使得&#xff1a;1)shape(w)(k&#xff0c;len(v))&#xff0c;2)对于…

深度学习之卷积神经网络(Convolutional Neural Networks, CNN)(二)

前面我们说了CNN的一般层次结构, 每个层的作用及其参数的优缺点等内容.深度学习之卷积神经网络(Convolutional Neural Networks, CNN)_fenglepeng的博客-CSDN博客 一 CNN参数初始化及参数学习方法 和机器学习很多算法一样, CNN在进行训练之前也要进行参数的初始化操作. 我们…

GCC Inline ASM GCC内联汇编

GCC 支持在C/C代码中嵌入汇编代码&#xff0c;这些汇编代码被称作GCC Inline ASM——GCC内联汇编。这是一个非常有用的功能&#xff0c;有利于我们将一些C/C语法无法表达的指令直接潜入C/C代码中&#xff0c;另外也允许我们直接写 C/C代码中使用汇编编写简洁高效的代码。1.基本…

Hadoop1.x版本升级Hadoop2.x

引言 随着企业数据化和Hadoop的应用越加广泛&#xff0c;hadoop1.x的框架设计越来越无法满足人们对需求&#xff0c;Apache一直在对Hadoop1.x进行修改&#xff0c;最后推出了新一代的Hadoop2.x。从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看&#xff0c;MapRed…

本页由试用版打印控件lodop6.2.6输出_Visual Basic 6.0 Sirk 迷你版

Visual Basic 6.0 Sirk 迷你版 VB6 Sirk Mini 2019更新1、支持主流操作系统&#xff0c;避免原版安装失败的问题&#xff1a;支持Windows XP、Vista、Win7、Win8、Win10(32位、64位)。2、保留大部分常用功能&#xff0c;避免精简版过度精简&#xff1a;包含原版完整控件&#x…

深度学习之卷积神经网络 LeNet

卷积神经网络典型CNN LeNet&#xff1a;最早用于数字识别的CNNLeNet5&#xff1a;现在常说的一般就是LeNet5AlexNet&#xff1a;2012ILSVRC冠军&#xff0c;远超第二名的CNN&#xff0c;比LeNet更深&#xff0c;用多层小卷积叠加来替换单个的大卷积ZF Net&#xff1a;2013ILSV…

python爬虫常见反爬措施_爬虫常见的反爬措施有哪些

爬虫常见的反爬措施有三种&#xff1a;1、header头部信息解决方法&#xff1a;加User-Agent值&#xff1a;如果不加header头&#xff0c;部分网站服务器判断不到用户的访问来源&#xff0c;所以会返回一个404错误来告知你是一个爬虫&#xff0c;拒绝访问&#xff0c;解决办法如…

dom4j的读写xml文件,读写xml字符串

百度了一些博客&#xff0c;大同小异&#xff0c;在选取jar包工具的时候大概看了下&#xff0c;大抵是jdom原始&#xff0c;dom4j优秀。于是做了些练习。 参考&#xff1a;http://www.cnblogs.com/mengdd/archive/2013/06/05/3119927.html 1 package com.test.xml;2 3 import j…

深度学习之数据增强方案和TensorFlow操作

一、数据增强的方法介绍 增加训练数据&#xff0c; 则能够提升算法的准确率&#xff0c; 因为这样可以避免过拟合&#xff0c; 而避免了过拟合你就可以增大你的网络结构了。 当训练数据有限的时候&#xff0c; 可以通过一些变换来从已有的训练数据集中生成一些新的数据&#x…

移动前端头部标签(HTML5 head meta)

<!DOCTYPE html> <!-- 使用 HTML5 doctype&#xff0c;不区分大小写 --> <html lang"zh-cmn-Hans"> <!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa --> <head><!-- 声明文档使用的字符编码 --><meta charsetutf-8>&l…

python新建文件夹口令_python编程快速上手—口令保管箱

之前小编为大家整理了如何成为一个优秀的程序员应该具备的品质&#xff0c;接下来为大家展示一个简单有趣的python小项目&#xff0c;从中体会编程的乐趣。小编了解这个小项目之后&#xff0c;很是惊奇&#xff0c;觉得python竟然还可以做这样的事情。为什么要建立口令保管箱&a…