[19/09/08-星期日] Python的几个概念和语法
一、表达式、语句、程序、函数
1、表达式 就是一个类似于数学公式的东西 ,比如:10 + 5 8 - 4;表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响
如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出
2、语句 在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。如:print()、input()、a=10
语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果。
3、程序(program) 程序就是由一条一条的语句和一条一条的表达式构成的。
4、函数(function) 函数就是一种语句,函数专门用来完成特定的功能。函数长的形如:xxx()
分类:
内置函数 ,由Python解释器提供的函数,可以在Python中直接使用
自定义函数 ,由程序员自主的创建的函数,当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数 。
构成:
参数: ()中的内容就是函数的参数,函数中可以没有参数,也可以有多个参数,多个参数之间使用","隔开
返回值 :返回值是函数的返回结果,不是所有的函数都有返回值。
二、书写规范
1、在Python中严格区分大小写;
2、Python中的每一行就是一条语句,每条语句以换行结束,不像其他语言以“;”结尾;
3、Python中每一行语句不要过长(规范中建议每行不要超过80个字符),在sublime编辑器设置不要超过80个字符,"rulers":[80],
4、一条语句可以分多行编写,多行编写时语句后边以‘’\‘’结尾;
5、Python是缩进严格的语言,所以在Python中不要随便写缩进;
6、在Python中使用 # 来表示注释,# 后的内容都属于注释,注释的内容将会被解释器所忽略,注释要求简单明了,一般习惯上#后边会跟着一个空格。
三、基本语法
1、字面量(常量)和变量
字面量就是一个一个的值,比如:1,2,3,4,5,6,‘HELLO’,所表示的意思就是它的字面的值,在程序中可以直接使用字面量;
变量(variable)变量可以用来保存字面量,并且变量中保存的字面量是不定的,变量本身没有任何意思,它会根据不同的字面量表示不同的意思。
一般我们在开发时,很少直接使用字面量,都是将字面量保存到变量中,通过变量来引用字面量。
2、变量和标识符
变量:
Python中使用变量,不需要声明(和类型),直接为变量赋值即可,a = 10。
不能使用没有进行过赋值的变量,如果使用没有赋值过的变量,会报错 NameError: name 'b' is not defined。
Python是一个动态类型的语言,可以为变量赋任意类型的值,也可以任意修改变量的值,a = 'hello',也是对的。
标识符:
在Python中所有可以自主命名的内容都属于标识符,比如:变量名、函数名、类名,标识符必须遵循标识符的规范
(1)、标识符中可以含有字母、数字、_,但是不能使用数字开头,例子:a_1 _a1 _1a
(2)、标识符不能是Python中的关键字和保留字,也不建议使用Python中的函数名(如print)作为标识符,因为这样会导致函数被覆盖。
(3)、命名规范:如果使用不符合标准的标识符,将会报错 SyntaxError: invalid syntax
下划线命名法,所有字母小写,单词之间使用_分割,如:max_length, min_length, hello_world, xxx_yyy_zzz
帕斯卡命名法(驼峰命名法),首字母大写,每个单词开头字母大写,其余字母小写,如:MaxLength, MinLength, HelloWorld, XxxYyyZzz
3、数据类型
指的就是变量的值的类型,也就是可以为变量赋哪些值
分类:数值型 (整形、浮点型、复数), 布尔型, 字符型, 空值
在Python数值分成了三种:整数、浮点数(小数)、复数
(1)int型,在Python中所有的整数都是int类型,a = 10 b = 20,Python中的整数的大小没有限制,可以是一个无限大的整数,不用担心内存溢出。
如 c = 9999999999999999999 ** 100是对的,如果数字的长度过大,可以使用下划线作为分隔符,c = 123_456_789,下划线自动忽略。
d = 0123 ,10进制的数字不能以0开头,print输出时,其他进制的整数,只要是数字打印时一定是以十进制的形式显示的。
# 二进制 0b开头,c = 0b10 ,十进制的2
# 八进制 0o开头,c = 0o10,十进制的8
# 十六进制 0x开头,c = 0x10,十进制的16
也可以通过运算符来对数字进行运算,并且可以保证整数运算的精确,如,c = 100,c = c + 3
(2)float型, 浮点数(小数),在Python中所有的小数都是float类型,c = 1.23
对浮点数进行运算时,可能会得到一个不精确的结果,如c = 0.1 + 0.2 ,可能会输出0.30000000000000004
字符型
(3)string型,字符串(str)用来表示一段文本信息,字符串是程序中使用的最多的数据类型,在Python中字符串需要使用引号引起来。
如,s = 'hello',字符串必须使用引号引起来,不使用不是字符串。引号可以是双引号,也可以是单引号,但是注意不要混着用
s = 'hello' s = "hello" 但是s = 'hello" 引号不能混合使用,会出现 SyntaxError: EOL while scanning string literal。
注意: 相同的引号之间不能嵌套
错误示范, s = "子曰:"学而时习之,乐呵乐呵!"",正确的,s = '子曰:"学而时习之,乐呵乐呵!"'
# 长字符串,单引号和双引号不能跨行使用
s = '锄禾日当午,\
汗滴禾下土,\
谁知盘中餐,\
粒粒皆辛苦' , 这样打印出来都在1行。
所以使用三重引号来表示一个长字符串 3个单引号''' 或3个双引号""",三重引号可以换行,并且会保留字符串中的格式
s = '''锄禾日当午,
汗滴禾下土,
谁知盘中餐,
粒粒皆辛苦''',这样打印出在4行
# 转义字符,可以使用 \ 作为转义字符,通过转义字符,可以在字符串中使用一些特殊的内容
\' 表示', \" 表示",\t 表示制表符,\n 表示换行符,\\ 表示反斜杠,\uxxxx 表示Unicode编码,UTF-8编码的万国码。
s = "子曰:\"学而时习之,\\\\n乐呵乐呵!\""
s = '\u2250'
#格式化字符串
(1)字符串之间也可以进行加法运算, 如果将两个字符串进行相加,则会自动将两个字符串拼接为一个字符串。
如,a = 'abc' + 'haha' + '哈哈',输出abchaha哈哈
print("a = "+a) , 这种写法在Python中不常见,常用的是这个 print('a =',a)
字符串不能和其他的类型进行加法运算,如果做了会出现异常 TypeError: must be str, not int。例如a=12, print("a = "+a) ,会报错,因为前边是
字符串后边是整形变量。
(2)在创建字符串时,可以在字符串中指定占位符
%s 在字符串中表示任意字符
%f 浮点数占位符
%d 整数占位符
如,b = 'Hello %s'%'孙悟空' ,输出Hello 孙悟空,用孙悟空填充%s
b = 'hello %s 你好 %s'%('tom','孙悟空')
b = 'hello %3.5s'%'abcdefg' # %3.5s字符串的长度限制在3-5之间,不够在前边填空格,多了砍掉后边。
b = 'hello %s'%123.456 str是万能的,填整形和浮点型都可以。
b = 'hello %.2f'%123.456 保留2位小数,自动四舍五入。
b = 'hello %d'%123.95 直接把小数给舍掉。
b = '呵呵'
print('a = %s'%a)
(3)格式化字符串,可以通过在字符串前添加一个f(引号前边)来创建一个格式化字符串
在格式化字符串中可以直接嵌入变量如 a和b
c = f'hello {a} {b}'
print(f'a = {a}')
练习 创建一个变量保存你的名字,然后通过四种格式化字符串的方式,在命令行中显示,欢迎 xxx 光临!
name='孙悟空'
print("欢迎"+name+"光临!")
print("欢迎",name,"光临!")
print('欢迎%s光临!'%name)
print(f'欢迎{name}光临!')
# 字符串的复制(将字符串和数字相乘)
a = 'abc' * 在语言中表示乘法
如果将字符串和数字相乘,则解释器会将字符串重复指定的次数并返回
a = a * 20
print(a) 字符串复制20次输出,Python中独有
(4)布尔值(bool)
布尔值主要用来做逻辑判断,布尔值一共有两个 True (真)和 False(假)
a = True
a = False
print('a =',a)
布尔值实际上也属于整型,True就相当于1,False就相当于0
print(1 + False) ,输出为1
(5) None(空值)None专门用来表示不存在
b = None
print(b) 输出为None
扩展-1:类型检查
a = 123 数值 print('a =',a)
b = '123' 字符串 print('b =',b)
type()函数用来检查值的类型, 该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值。
c = type('123')
c = type(a)
print(type(b)) 输出<class 'str'>
print(type(1)) 输出 <class 'int'>
print(type(1.5)) 输出<class 'float'>
print(type(True)) 输出 <class 'bool'>
print(type('hello')) 输出<class 'str'>
print(type(None)) 输出 <class 'NoneType'>
扩展-2:类型装换(将一个类型的对象转换为其他对象,类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象)
类型转换四个函数 int()、 float()、 str()、 bool()
(1)、 int() 可以用来将其他的对象转换为整型
规则:
布尔值:True -> 1 False -> 0
浮点数:直接取整,省略小数点后的内容
字符串:合法的整数字符串,直接转换为对应的数字。如果不是一个合法的整数字符串(如小数字符串'11.5'),则报错 ValueError: invalid literal for int()
with base 10: '11.5',对于其他不可转换为整型的对象,直接抛出异常 ValueError。
(2)、 float() 和 int()基本一致,不同的是它会将对象转换为浮点数
(3)、 str() 可以将对象转换为字符串
True -> 'True'
False -> 'False'
123 -> '123'
(4)、bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值
规则:对于所有表示空性的对象都会转换为False,其余的转换为True
哪些表示的空性:0 、 None 、 ''
例如:
a = True
调用int()来将a转换为整型,int()函数不会对原来的变量产生影响,他是对象转换为指定的类型并将其作为返回值返回
如果希望修改原来的变量,则需要对变量进行重新赋值。
a = int(a)
a = False
a = int(a)
a = '123'
a = int(a)
a = 11.6
a = int(a)
a = '11.5'
a = int(a)
a = None
a = int(a)
a = 1
a = float(a)
a = False
a = float(a)
a = 123
a = str(a)
a = None
a = bool(a)
print('a =',a)
print('a的类型是',type(a))
b = 456
print('hello'+str(b))
4、 对象(object)
Python是一门面向对象的语言,一切皆对象!程序运行当中,所有的数据都是存储到内存当中然后再运行的,对象就是内存中专门用来存储指定数据的
一块区域,对象实际上就是一个容器,专门用来存储数据 ,如数值、字符串、布尔值、None都是对象
结构:每个对象中都要保存三种数据
1、id(标识)
id用来标识对象的唯一性,每一个对象都有唯一的id,对象的id就相当于人的身份证号一样,可以通过id()函数来查看对象的id,id是由解析器生成的,
在CPython中,id就是对象的内存地址, 对象一旦创建,则它的id永远不能再改变。
2、type(类型)
类型用来标识当前对象所属的类型,比如:int str float bool。类型决定了对象有哪些功能,通过type()函数来查看对象的类型, Python是一门强类型的语言,
对象一旦创建类型便不能修改。
3、 value(值)
值就是对象中存储的具体的数据,对于有些对象值是可以改变的;
对象分成两大类,可变对象和不可变对象,可变对象的值可以改变,不可变对象的值不能改变,之前学习的对象都是不可变对象。
变量和对象:
对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名,变量中存储的不是对象的值,而是对象的id(内存地址),
当我们使用变量时,实际上就是在通过对象id在查找对象,变量中保存的对象(的地址即id),只有在为变量重新赋值时才会改变,变量和变量之间是相互独
立的,修改一个变量不会影响另一个变量.。
[19/09/08-星期日] Python的几个概念和语法的更多相关文章
- python面向对象编程 -- 基本概念
面向对象的编程简要概括就是将要处理的问题抽象为数据和操作的集合,用类对其进行封装.其中数据和操作都称为类的属性,它们是一般是不变的. 对类进行实例化生成我们所说的对象,对象有自己的属性.对象的属性一般 ...
- c#用正则表达式判断字符串是否全是数字、小数点、正负号组成 Regex reg = new Regex(@"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$");
Regex reg = new Regex(@"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][ ...
- js正则表达式校验非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [19/10/13-星期日] Python中的函数
一.函数 # 第五章 函数 ## 函数简介(function) - 函数也是一个对象 - 对象是内存中专门用来存储数据的一块区域 - 函数可以用来保存一些可执行的代码,并且可以在需要时,对这些语句进行 ...
- 『Python题库 - 简答题』 Python中的基本概念 (121道)
## 『Python题库 - 简答题』 Python中的基本概念 1. Python和Java.PHP.C.C#.C++等其他语言的对比? 2. 简述解释型和编译型编程语言? 3. 代码中要修改不可变 ...
- Python学习:基本概念
Python学习:基本概念 一,python的特点: 1,python应用场景多;爬虫,网站,数据挖掘,可视化演示. 2,python运行速度慢,但如果CPU够强,这差距并不明显. 3,严格的缩进式编 ...
- web前端学习python之第一章_基础语法(二)
web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...
- web前端学习python之第一章_基础语法(一)
web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...
- python 中面向对象的概念
原文 域和作用空间 本地域,函数域(nonlocal)和 全局域(global) def scope_test(): def do_local(): spam = "local spam&q ...
随机推荐
- big.js常用方法
官网api:http://mikemcl.github.io/big.js/ +:minus.minus(n) ⇒ Big %:mod.mod(n) ⇒ Big -:plus.plus(n) ⇒ B ...
- VC内联汇编和GCC内联汇编的语法区别
VC: #include <stdio.h> main(){ int a = 1; int b = 2; int c; __asm{ mov eax,a mov ebx,b mov ecx ...
- 非root用户随开机而启动mysql服务
非root用户随开机而启动mysql服务 今天验证了一下,非root用户随开机而启动msyql服务的脚本执行效果,特此简要记录如下: 环境: 192.168.142.130 mysql 5.6.41 ...
- layui 获取iframe层的window
success: function (layero, index) { var iframeWin = $("div.layui-layer-content > iframe" ...
- Cassandra 数据一致性
基本概念 一致性: 在分布式系统中的所有数据备份,在同一时刻是否同样的值 QUORUM: 是一个可以计算的数字,对数据一致性起重要作用 Node: 主要用来存储数据 Data Center: 数据中心 ...
- ef 分页
public List<TEntity> FindList(Expression<Func<TEntity, bool>> predicate, Paginatio ...
- Ubuntu ssh秘钥生成
一,秘钥生成传送 ssh-keygen 选项: -b:指定密钥长度: -e:读取openssh的私钥或者公钥文件: -C:添加注释: -f:指定用来保存密钥的文件名: -i:读取未加密的ssh-v2兼 ...
- 建立PHP的本地调试环境PHP基础教程
对于windows平台而言,PHP供给了一个安装程序,但是这个安装程序是不能直接运行来建立个人服务器平台的,而是必需嵌进现有的服务器平台,如:Windows NT下的IIS或Windows下的PWS, ...
- 157. [USACO Nov07] 奶牛跨栏(第三次考试大整理)
157. [USACO Nov07] 奶牛跨栏 输入文件:hurdles.in 输出文件:hurdles.out 简单对比 时间限制:1 s 内存限制:128 MB 译 by CmYkRg ...
- 在最新的 create-react-app 中添加 less 支持
前置知识: 把 webpack 的相关配置暴露出来 运行 git add -A 运行 git commit -m 'project init' 运行 yarn eject 然后选 y 项目中多出来两个 ...