python入门级基础知识
Python程序的构成
- 一个python程序由模块构成,一个模块对应着一个python的源文件,后缀名.py。
- 模块由语句组成,运行python程序时,按照模块中的语句顺序依次执行。
- 语句是python程序的构造单元,用于创建对象,变量赋值,控制语句调用函数等。
一、第一个Python程序(windows系统中)
print('Hello World!')
在命令行窗口或者IDLE或者开发工具中输入该代码会将代码内的东西原封不动地输出出来。
二、注释
<1> 单行注释
以#开头,右边的所有东西当做说明,不会被python的解释器所执行。
# 我是注释,下面这句话用来输出一个hello world
print('hello world')
<2> 多行注释
'''
我是多行注释,可以写很多很多行的功能说明
这就是我牛X的地方
哈哈哈。。。
'''
感觉就是个字符串,随便记一下就好了。
三、对象与引用(重点)
Python中,一切皆对象(看起来有一点快乐,不用担心找不到对象的问题了,也不需要new一个,手动滑稽)
每个对象由:
标识(identity)、类型(type)、值(value)
三个部分组成。
- 标识用于唯一标识对象,通常对应于对象在计算机中内存的地址。使用内置函数id(obj)可以返回对象obj的标识
- 类型用于标识对象存储的”数据“的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获取对象的所属类型。
- 值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。
下面声明一个变量a并赋值为3,看看发生了什么事
个人的一些理解:
python是个动态类型的语言而且还是个强类型的语言。在python当中,变量其实是对象的引用。变量存储的就是对象的地址,变量通过地址引用了对象。
四、变量及数据类型
变量就是用来存储数据的
Python3 中有六个标准的数据类型:
- Number(数字)
- Python3 支持 int、float、bool、complex(复数)。
- String(字符串)
- Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
- List(列表)
- List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
- Tuple(元组)
- Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
- Set(集合)
- 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
- Dictionary(字典)
-
字典(dictionary)是Python中另一个非常有用的内置数据类型。
-
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
-
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
-
键(key)必须使用不可变类型。
-
在同一个字典中,键(key)必须是唯一的。
-
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
上述关于python中的数据类型参考了菜鸟教程的部分内容
https://www.runoob.com/python3/python3-data-type.html
五、标识符
标识符:用于变量、函数、类、模块等的名称。
标识符有如下特定的规则:
- 区分大小写。如:sxt 和 SXT 是不同的。
- 第一个字符必须是字母、下划线。其后的字符是:字母、数字、下划线。
- 不能使用关键字。比如:if、or、while 等。
- 以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。比如:__init__是类的构造函数。
命名规则:
类型 | 规则 | 例子 |
---|---|---|
模块和包名 | 全小写字母,尽量简单。若多个单词之间用下划线 | math, os, sys |
函数名 | 全小写字母,多个单词之间用下划线隔开 | phone, my_name |
类名 | 首字母大写,采用驼峰原则。多个单词时,每个单词第一个字母大写,其余部分小写 | MyPhone、MyClass、Phone |
常量名 | 全大写字母,多个单词使用下划线隔开 | SPEED、MAX_SPEED |
六、输入和输出
输入:
input() # 返回的是一个字符串
输出
print() # 输出对象的值
输出格式化
常见的有几种形式:
age = 25
# 常见的几种输出方式
print('age is', age)
print('age is %d' % age)
print('age is {0}'.format(age))
print(f'age is {age}') # python36后新增特性
七、运算符
Python3中支持以下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
- 位运算符
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
- 成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
运算符真的是乱七八糟的一堆,基本的先记忆一下,关于运算符的优先级,跟数学中也差不太多。忘了的时候后来看一看好了。
八、常用的数据类型转换
函数 | 说明 |
---|---|
int(x [,base ]) | 将x转换为一个整数 |
long(x [,base ]) | 将x转换为一个长整数 |
float(x ) | 将x转换到一个浮点数 |
complex(real [,imag ]) | 创建一个复数 |
str(x ) | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
eval(str ) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s ) | 将序列 s 转换为一个元组 |
list(s ) | 将序列 s 转换为一个列表 |
chr(x ) | 将一个整数转换为一个字符 |
unichr(x ) | 将一个整数转换为Unicode字符 |
ord(x ) | 将一个字符转换为它的整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
注:
字符串转换为列表可以使用 list()
列表转换为字符串要使用join()
九、选择结构
就是if…else
if 条件表达式 1 :
语句 1/语句块 1
elif 条件表达式 2:
语句 2/语句块 2
...
elif 条件表达式 n :
语句 n/语句块 n
else:
语句 n+1/语句块 n+1
十、循环结构
while循环:
while 条件表达式:
循环体语句
for循环:
for 变量 in 可迭代对象:
循环体语句
循环中的break和continue
break 语句可用于 while 和 for 循环,用来结束整个循环。当有嵌套循环时,break 语句只 能跳出最近一层的循环
continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最近的一层循环。
十一、推导式
- 列表推导式
[表达式 for item in 可迭代对象 ] - 字典推导式
{key_expression : value_expression for 表达式 in 可迭代对象}
十二、容易忘的一些小细节
- 要比较两个浮点数的大小,只需要看两个数的差值是否小于一个极小的值。
- Math模块中有丰富的数学函数,导入之后使用math.函数名。(其实所有python库差不多都是这样,忘了也没关系,反正IDE会提示)
- 断行:Python语言中使用‘\’将过长语句分开到下一行。‘\’后无内容。
- join函数:将原字符串插入到参数字符串每两个字符之间,如果参数字符串中只有一个字符返回参数字符串。
- split函数:返回以指定的字符将字符串分割成列表形式并返回,但并不改变原字符串。
- Python中的 " = ":
在Python中,“ = ”的作用是将对象引用与内存中某对象进行绑定。如果对象已经存在,就简单地进行绑定,以便引用右边的对象;若对象不存在,就由“ = ”操作符创建对象并绑定。 - 关于字符串、列表、字典中的一些方法:
内建函数实在是太多了,记住一些常用的,比如append()、len()、reverse()等等。在不断地练习中去学习更多的方法吧。
十三、学习体会
python的语法结构确实不难,但是需要记忆的地方实在是太多了。今天学习了选择和判断似乎就可以开始尝试着去写一些小程序了,自己动手的收获会必较大,记住的东西也可能会遗忘,忘了的时候就重新回来看看,去查查文档。总会记得越来越多的东西的。
加油!!!
你可以的!你总是这样相信着自己!
来源:oschina
链接:https://my.oschina.net/u/4385242/blog/4281723