Python语言学习前提:基础语法
一、变量
1.变量:存储数据。存储数据需要对应内存空间,基于变量的数据类型,解释器会分配指定内存,决定什么数据被存储到内存中。
变量数据类型:整数、小数、字符。
2.变量赋值:变量在使用前必须赋值,赋值的变量才被创建。
#!/usr/bin/env python student = 8000 #整数型
miles = 150.0 #浮点型
name = "crystal" #字符串 print student
print miles
print name
3.多个变量赋值
1)创建变量,值为1,三个变量被分配在相同的内存空间上。
a = b = c = 1
2)多个对象指定多个变量
a, b, c = 100, 150.0, "crytsal"
二、标准数据类型
1.python有五个标准数据类型:Numbers(数字)、布尔值、string(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)
2.Numbers(数字):int(有符号整型)、long(长整形【也可代表八进制和十六进制】)、float(浮点型)、complex(复数)
Numbers(数字):可执行加(+)、减(-)、乘(*)、除(/)运算。
1)int
var1 = 11
var2 = 12
2)long(在python2中存在,在python3中无long了)
var3 = 51924361L
3)float
var4 = 5.20
var6 = 52.3E-4
4)complex
var5 = 3.14j (3.14为实数,j为虚数)
备注:使用函数str( )避免类型错误,把 int 类型转换成 str 类型
age = 23
message = 'Happy'+str(age)+'rd Birthday!'
print(message)
#输出结果:Happy23rd Birthday! 如果不使用函数str(),将报错:TypeError:Can't convert 'int' object to str implicitly
3.布尔值
真或假
1 或 2
a = 0
if a:print("a") #if a: 是假设a成立
#当a为0是不成立的,所以没有打印出任何结果
4. string(字符串):由数字、字母、下划线组成的一串字符。用单引号或者双引号引用起来的都是字符串。
1)字符串
a = “n_12”
2)字串列表有2种取值方法:
a. 从左到右索引默认为0
b. 从右到左索引默认-1开始
c r y s t a l
0 1 2 3 4 5 6
-7 -6 -5 -4 -3 -2 -1
5. 列表:python使用最频繁的数据类型。支持字符、数字、字符串设置可以包含列表(即嵌套)。
列表用 [ ] 标识,并用逗号来分隔其中的元素。是python通用的复合数据类型。列表是有序集合。列表的索引从0开头。
1)从下标获取字符串部分数据
>>>a = "abcdef"
>>>a [1:5]
"bcde”
>>>a [-6:-2] #切片,计算都是从左到右
"bcde"
>>>a [-2:]
"ef"
>>>a [:3]
"abc"
2)索引1到索引4,步长为2(间隔一个位置)来截取字符串
>>>letters = ['c','r','y','s','t','a','l']
>>>letters[1:4:2]
['r','s']
3)列表涉及的增删改查等方法
names = ["a","b","c","d"]
#names.append("e") #增加
#names.insert(1,"f") #插入
#names[2]="g" #修改
#names.remove("g") #删除
#del names[1] #删除
#names.pop(1) #删除
#print(names.index("c")) #查找位置
#print(names[names.index("c")]) #查找位置并打印出来
#print(names.count("d")) #统计数量
#names.clear() #清空
#names.reverse() #反转,原先的值反转排序
#names.sort() #排序
print(names)
names2 =[1,2,3,4]
names.extend(names2) #扩展
del names2
print(names)
结果如下:
['a', 'b', 'c', 'd']
['a', 'b', 'c', 'd', 1, 2, 3, 4]
4)深浅copy。浅copy只是根据列表的内存地址进行变换,深copy是直接copy所有原来的值
import copy
names = ["a","b",["e","f"],"c","d"]
names2 = copy.copy(names) #浅copy,只是内存空间的地址修改。
#name2 = person[:] #浅copy的另一种方法
#name2 = list(person) #浅copy的另一种方法
print(names)
print(names2)
names[0]="o"
names[2][0]="ee"
print(names)
print(names2)
结果如下:
['a', 'b', ['e', 'f'], 'c', 'd']
['a', 'b', ['e', 'f'], 'c', 'd']
['o', 'b', ['ee', 'f'], 'c', 'd']
['a', 'b', ['ee', 'f'], 'c', 'd']
import copy
names = ["a","b",["e","f"],"c","d"]
names2 = copy.deepcopy(names) #深copy。不随便使用,太消耗内存
print(names)
print(names2)
names[0]="o"
names[2][0]="ee"
print(names)
print(names2)
结果如下:
['a', 'b', ['e', 'f'], 'c', 'd']
['a', 'b', ['e', 'f'], 'c', 'd']
['o', 'b', ['ee', 'f'], 'c', 'd']
['a', 'b', ['e', 'f'], 'c', 'd']
5)列表循环
names = ["a","b",["e","f"],"c","d"]
print(names[0:-1:2])
for i in names:
print(i)
结果如下:
['a', ['e', 'f'], 'd']
a
b
['e', 'f']
c
d
6. 元组:元组用 ( ) 标识,内部元素用逗号隔开,元组不能二次赋值,又称为只读列表
#!/usr/bin/env python tuple = ("ruby", 768, 2.01, 'crystal', 50.2)
tinytuple = (1234, 'crystal') print tuple #输出完整元组
print tuple [1:3] #输出第二个至第四个(不包含)的元素
print tinytuple * 2 #输出元组2次
打印的结果如下:
("ruby", 768, 2.01, 'crystal', 50.2)
(768, 2.01)
(1234,‘crystal’,1234,‘crystal’)
备注:元组不允许更新,列表允许更新
#! /usr/bin/env python tuple = ("crystal", 899, 2.01, 50.2)
list = ["crystal", 899, 2.01, 50.2]
tuple [2] = 1000 #元组中是非法应用
list [2] = 1000 #列表中可以把下标2的值更新为1000,属于合法应用
备注:元组只有count (统计数量)和 index(查找位置并打印出来)两种方法。
names = ('alex','jack')
print(names.count('alex'))
print(names.index('alex'))
7.字典:除列表以外python中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者间的区别:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用 { } 来识别,字典由索引(key)和它对应的值value组成。key必需唯一,字典有去重的作用。
#!/usr/bin/env python dict = {'name':'crystal', 'code':5050,'dept':'sale' } print dict
print dict.keys()
print dict.values()
打印结果如下:
{'name':'crystal', 'code':5050,'dept':'sale' }
['dept','code','name']
['sale',5050,'crystal']
三、数据类型转换:将数据类型作为函数名即可
四、中文编码:在python3.x 之前都需要指定中文编码UTF-8。python3.x源码文件默认使用UTF-8编码,所以无需声明
1.pycharm中配置UTF-8
1)file > Settings,输入encoding
2)找到Editor > File encoding, 将IDE Encoding和 Project Encoding设置成UTF-8即可
2. 代码中声明UTF-8
#! /usr/bin/env python
# -*- coding: UTF-8 -*- print(“你好,世界”)
备注:如果在python2.x不做声明的话,就会出现以下错误提示
SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xc4 in position 0:
invalid continuation byte
五、基础语法
1.python变量:
a.由字母、数字、下划线组成。但不能以数字开头。
b.python变量区分大小写。
c.变量名不能包含空格
d.python关键字和函数名不能作为变量名
e.变量名应简短并具有描述性
1)以单下划线开头,如_foo的代表不能直接访问的类属性,需要通过类提供的接口进行访问。不能用 from xxx import导入
2)以双下划线开头的__foo代表类的私有成员
3)以双下划线开头和结尾__foo__代表python里特殊方法专用的标识,如__init__( )代表类的构造函数
备注:如果变量名print的时候输入错误,报错信息:NameError:name '变量名' is not defined
2. python保留字符:不能用作常数或变数,或任何其他标识符名称。所有python关键字只包含小写字母
3. 行和缩进:python的代码块不使用{ }来控制类、函数以及其他逻辑判断。只需要用缩进来写模块。
所有代码块语句必须包含相同的缩进空白数量。(可以直接用tab键进行缩进)
if True:
print('True')
else:
print('False')
备注:如果缩进不一致,报错:IndentationError: unindent does not match any outer indentation level
4.多行语句:用反斜杠进行多行显示。语句中包含[ ]、{ }、()就不需要多行连接符
total = time_one+ \
time_two+ \
time_three
5.引号:单引号、双引号、三引号都可以表示字符串,引号开头和结尾要相同。
name = 'crystal'
word = "John"
paragraph = """这是一个段落
它包含多个语句"""
6. 注释
a.单行注释用 # 开头,或者注释在语句或表达式行末
b.多行注释用三个单引号或者三个双引号
#! /usr/bin/env python name = 'crystal' #这是一个变量 '''
多行注释用三个单引号。
多行注释用三个单引号。
多行注释用三个单引号。
''' """
多行注释用三个单引号。
多行注释用三个单引号。
多行注释用三个单引号。
"""
7. 空行:函数之间或类的方法之间用空行隔开,表示一段新的代码的开始。空行不是语法,只是便于日后代码的维护
8. 等待用户输入:程序等待用户输入,按回车键退出
#! /usr/bin/env python raw_input("按下enter键退出,其他任意键显示...\n") #‘\n’代表换行,用户一旦按下enter键,其他键显示
9. 同一行显示多条语句
#! /usr/bin/env python import sys; x = 'ruby'; sys.stdout.write(x + '\n')
10.print输出:print默认输出换行,如果不需要换行在末尾加逗号
#!/usr/bin/python x = 'A'
y = 'B'
print x
print y #输出的内容 A
B print x,y #输出的内容是A B print x,
print y #输出的内容是A B
11.多个语句构成代码组:缩进相同的一组语句构成一个代码块,也就是代码组。
例如if、while、def和class这样的复合语句,首行以关键字开头,以冒号结束,该行之后是一行或多行代码构成的代码组
#! /usr/bin/env python if expression:
sutie
elif expression:
suite
else:
suite
12.命令行参数:python可以使用 -h 参数查看各参数帮助信息
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d : debug output from parser (also PYTHONDEBUG=x)
-E : ignore environment variables (such as PYTHONPATH)
-h : print this help message and exit [ etc. ]
六、运算符
1. 算术运算符
实例如下:
#! /usr/bin/env python a = 21
b = 10
c = 0 c = a + b #c = 31
c = a - b #c =11
c = a* b #c =210
c = a /b #c =2
c = a % b #c =1
c = a **b #c =8
c = a // b #c =2
2. 比较运算符(以下假设变量a 为10,变量b为20)
3. 赋值运算符(假设变量a为10,变量b为20)
实例如下:
#! /usr/bin/env python a=21
b=10
c=0 c = a + b #c=31
c += a # c = 31+21,值为52
c *=a #c = 52*21 ,值为1092
其他算法依次计算
4.位运算符:把数字看作二进制来进行计算。(下表中变量a为60, b为13,二进制格式)
5.逻辑运算符(假设变量a为10,b为20)
6.成员运算符:测试实例中包含了一系列的成员,包括字符串、列表或元组
实例如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*- a = 10
b = 20
list = [1, 2, 3, 4, 5 ]; if ( a in list ):
print "1 - 变量 a 在给定的列表中 list 中"
else:
print "1 - 变量 a 不在给定的列表中 list 中" if ( b not in list ):
print "2 - 变量 b 不在给定的列表中 list 中"
else:
print "2 - 变量 b 在给定的列表中 list 中"
7.身份运算符:用于比较两个对象的存储单元
8.运算符优先级(列表从最高到最低优先级排序)
实例如下:
#! /usr/bin/env python a = 20
b = 10
c = 15
d = 5
e = 0 e = (a + b)* c / b #(30*15)/ 5,结果为90
9. 三元运算
result = 值1 if条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
a,b,c=1,3,5
d =0
if a <b:
d = a
print(d)
else :
d = c
print(d)
10. 进制
a. 二进制: 01
b. 八进制:01234567
c. 十进制:0123456789
d.十六进制:0123456789ABCDEF
11. bytes类型(python3中才有,python2中字节和字符串数据类型不区分)
a. 文本是Unicode,由str类型表示;二进制数据则由bytes类型表示。python3中不能进行字符串和字节包进行拼接操作。
备注:字符串和二进制之间的转换。网络传输数据在python3中全部用二进制的形式传输。encode为编码,decode是解码。
msg= "我爱北京天安门" #print(msg)
print(msg.encode(encoding="utf-8"))
#print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))
备注:知识点引用自菜鸟课程:https://www.runoob.com/python
"bcde”
Python语言学习前提:基础语法的更多相关文章
- Python语言学习前提:条件语句
一.条件语句 1.条件语句:通过一条或多条语句的执行结果(True或False)来决定执行额代码块.python程序语言指定任何非0或非空(null)的值为true,0或null为false. 2. ...
- Python语言学习前提:Pycharm的使用
一.Pycharm的使用 1.点击Pycharm的图标 2.点击首页Create New Project > 在弹出的页面点击Pure Python 3.选择项目文件存放的位置,选择完成之后点击 ...
- Python语言学习前提:循环语句
一.循环语句 1.循环语句:允许执行下一个语句或语句组多次 2. 循环类型 3. 循环控制语句 4. while 循环语句 a.while循环语句:在某个条件下,循环执行某段程序,以处理需要重复处理的 ...
- Python语言学习前提:python安装和pycharm安装
一.Windows系统python安装 1.python官网:https://www.python.org/downloads/ 2.官网首页:点击Downloads > Windows > ...
- JavaScript学习02 基础语法
JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...
- Python学习笔记(Ⅰ)——Python程序结构与基础语法
作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...
- Python学习①. 基础语法
Python 简介 Python 是一种解释型,面向对象的语言.特点是语法简单,可跨平台 Python 基础语法 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编 ...
- Python环境安装与基础语法(2)——数据类型、标识符、语言分类
高级语言发展 结构化语言:以顺序(步骤化),分支,循环描述问题 面向对象语言:接近人类的认知,万物抽象成对象,对象间的关系抽象成类和继承 程序=数据结果+算法 Python解释器 CPython:由C ...
- Python语言学习之Python入门到进阶
人们常说Python语言简单,编写简单程序时好像也确实如此.但实际上Python绝不简单,它也是一种很复杂的语言,其功能特征非常丰富,能支持多种编程风格,在几乎所有方面都能深度定制.要想用好Pytho ...
随机推荐
- ABP框架没有httpPost,httpget,httpput特性
需要引用一下组件, Microsoft.AspNetCore.Mvc
- Linux 正则表达式与文本处理器 三剑客
Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...
- PAT 2019 秋
考试的还行.不过略微有点遗憾,但是没想到第一题会直接上排序和dfs,感觉这次的题目难度好像是倒着的一样.哈哈哈哈. 第一题实在是搞崩心态,这道题给我的感觉是,可以做,但事实上总是差点啥. 第二题,第三 ...
- Oracle 基础1
oracle基础 表空间: Oracle数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的 表空间分类: 永久表空间 用来存放表的数据, 视图 ...
- iOS 中的延时操作方法
1. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_q ...
- WOJ 1538 Stones II 转化背包问题
昨天是我负责这个题目的,最后没搞出来,真的给队伍拖后腿了. 当时都推出来了 我假设最后结果是取了m个物品,则我把这个m个物品按取的先后编号为 k1 k2 k3 k4...km 则最终结果就是 (k1. ...
- 技术沙龙|原来落地AI应用是这么回事儿!
目前人工智能已经迈入应用落地之年,作为备受关注的话题,在重磅政策的加持下市场规模迅速扩大并渗透到各行各业的形势越发鲜明.在此背景下,作为国内不容忽视的创新企业之一,京东AI依托于NeuHub平台对数据 ...
- 根据pdf文件获取标题等信息
根据 kdd2019的 pdf文件, 生成索引文档. 代码如下: for fname in ` ls pdfs/*.pdf`; do title=$(mdls -name kMDItemTitle - ...
- potplayer记住播放进度
(右键——选项)F5——播放——记忆视频播放位置
- 定时任务莫名停止,Spring 定时任务存在 Bug?
专注于Java领域优质,技术欢迎关注 作者: 鸭血粉丝 来自:Java极客技术 Hello~各位读者新年好,我是鸭血粉丝(大家可以称呼我为「阿粉」).这里阿粉给大家拜个年,祝大家蒸蒸日上烫烫烫,年年有 ...