Python第一章学习笔记(基础知识)
这是我第一次学习Python对基础知识所做的整理。
文章目录
1.Python对象模型
2.变量
3.数字
4.字符串
5.运算符与表达式
6.常用内置函数
7.基本输入输出
8.模块导入与使用
9.The Zen of Python
1.Python对象模型
Python常见内置对象
对象类型 | 类型名称 | 示例 | 简要说明 |
---|---|---|---|
数字 | int,float,complex | 1234, 3.14, 1.3e5, 3+4j | 数字大小没有限制,内置支持复数及其运算 |
字符串 | str | ‘swfu’ “I’ma student”“Python”‘r’abc’,R’bcd’ | 使用单引号、双引号、三引号作为定界符,以字母r或R引导的表示原始字符串 |
字节串 | bytes | b’hello world’ | 以字母b引导,可以使用单引号、双引号、三引号作为定界符 |
列表 | list | [1,2,3][‘a’, ‘b’,[‘c’,2]] | 所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型 |
字典 | dict | {1: ‘food’,2: ‘taste’, 3:‘import’} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为“键:值” |
元组 | tuple | (2,-5,6)(3,) | 不可变,所有元素放在一对括号中,元素之间使用逗号分隔,如果元组中只有一个元素的话,后面的逗号不能省略 |
集合 | set frozenset | {‘a’, ‘b’,‘c’} | 所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复;另外,set是可变的,而frozenset是不可变的 |
布尔型 | bool | True,False | 逻辑值,关系运算符、成员测试运算符、同— |
性测试运算符组成的表达式的值一般为True或False | |||
空类型 | NoneType | None | 空值 |
异常 | Exception、ValueError、TypeError | Python内置大量异常类,分别对应不同类型的异常 | |
文件 | f = open(‘data.dat’,‘rb’) | open是 Python内置函数,使用指定的模式打开文件,返回文件对象 | |
其他可迭代对象 | 生成器对象、range对象、zip对象、enumerate对象、map对象、filter对象等 | 具有惰性求值的特点,除range对象之外,其他对象中的元素只能使用一次 | |
编程单元 | 函数(使用def定义)类(使用class定义)模块(类型为module) | 类和函数都属于可调用对象,模块用来集中存放函数、类、常量或其他对象 |
2.Python变量
-
变量命名的规则
-
变量命名可以包含数字,大小写字母,下划线或者更多,一般在Python中,以下划线开头的内容具有特殊含义
- 变量名中不能有空格以及标点符号
-
不能使用关键字
-
不建议使用系统内置的模块名,类型名或函数名以及已导入的模块名及其成员名作为变量名
-
变量名区分英文字母的大小写,例如Teacher和teacher是不同的变量
3.数字
如下代码
9999999999999800000000000001
5.0
(8+10j)
8.0
10.0
(8-10j)
-
Python中的数字没有大小限制
-
常见数字分类
-
整数
-
浮点数
-
-
复数
整数又可分为下列几类
-
二进制
Python中以 0b 开头由0,1组成
-
八进制
Python中以 0o 开头由0-7数字组成
-
十进制
如0,-1,5,15,159
-
十六进制
Python中以0x开头 由0-9,a-f组成
4.字符串
- 在python中字符串属于不可变序列,可以用单引号、双引号、三引号界定,并且三者可以相互嵌套
- 空字符串可表示为’ ‘或’’ ‘‘或’’’ ‘’’
- 字符串支持+ * 运算进行合并生成新字符串
5.运算符与表达式
- 由一个以上的值经过一系列的运算得到新值的过程叫运算 用来操作运算的符号叫运算符
- 运算符分类
- 算数运算符
- 比较或者关系运算符
- 赋值运算符
- 逻辑运算符
- 位运算
- 成员运算符
- 身份运算符
如:
2/3= 0.6666666666666666
3//2= 1
2**3= 8
3.0//3.0= 1.0
False
True
False
25
20
False-
x or y 只有x为假的才计算y
-
x and y 只有x为真才计算y
-
大小比较可以连用 x>=y x<=y
-
python中逗号 , 并不是运算符,而只是一个普通的分隔符
-
6.常用内置函数
执行下面的命令可以查看所有内置函数和内置对象
>>>dir(__builtins__)
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
如下命令:
a=-2
b=[1,2,3,4,0]
c='a'
print( abs(a) ) #返回数字的绝对值
print( all(b) ) #对于可迭代对象所有元素 全部非零返回true 若存在零返回false
print( any(b) ) #对于可迭代对象存在元素非零,则返回true
print( bin(a) ) #把数字转换为二进制串
print( callable(a) ) #测试对象是否可调用,类和函数是可调用的
print( chr(65) ) #返回ASCII编码的字符
#print( dir(a) ) #返回指定对象的成员列表
print( ord(c) ) #返回一个字符的编码
print( str(b) ) #把对象转化为字符串
print( help(math.sin)) #查看指定方法的使用帮助
print( list(b) )# 把对象转换为 列表
print( set(b) ) #集合
print( tuple(b) )# 元组
#print( dict(b) ) #字典并返回
2
False
True
-0b10
False
A
97
[1, 2, 3, 4, 0]
Help on built-in function sin in module math:
sin(…)
sin(x)
Return the sine of x (measured in radians).
None
[1, 2, 3, 4, 0]
{0, 1, 2, 3, 4}
(1, 2, 3, 4, 0)
————————————————
此为本人转载
原文链接:https://blog.csdn.net/qq_40181592/article/details/86770782
7.基本输入输出
- 在Python中,使用内置函数input()来接受用户的键盘输入,函数print()是基本输出函数
- 不论用户输入什么,input()函数的返回值结果都是字符串,需要将其转换为相应的类型
- 参数sep用来指定分隔符,end指定结束符
>>> x=input("please input:")
>>>print(type(x))
>>>print(x,end=" ")
>>>print(int(x)+1)
please input:2
<class ‘str’>
2 3
>>>print(3,5,7,sep=':')
>>>print(3,5,7,sep=',')
3:5:7
3,5,7
8.模块导入与使用
导入方法分为两种:
-
import 模块名【as 别名】 使用这种方式导入后,需要在使用的对象前加上前缀 “模块名 . 对项名”的方式进行访问,也可以用“别名 对象名”的方式使用其中的对象
-
from 模块名 import 对象名【as 别名】 使用这种方式仅导入使用的对象,并且可以为这个对象起一个别名,这种方法可以减少查询次数,减少程序员的代码量,不需要使用模块名作为前缀
-
比较极端的情况是一次导入模块中全部的对象
from math import *
不推荐使用这中方法,一旦多个模块中有同名的对象,会导致混乱
9.The Zen of Python
Python之禅
>>>import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
只需要用心去体会,并在自己编写程序的时候多想想这段话,努力让自己编写的代码更加优雅。