[Python]Python入门笔记:语法基础
Python笔记
一、基本语法
1.1 注释
文档注释:
"""contents"""
多行注释:
'''
contents
'''
单行注释:
# contents
1.2 运算符、数与基本运算
运算符:
+, -, *, / , //, **, %
逻辑运算符
not
and:条件或短路运算符
or:条件或短路运算符
运算优先级(无圆括号的情况下):
- **(指数运算)
- *, / , // ,%
- +, -
科学计数法:
5.0534E(e)+2
,E(e)表示5.0534*(10^2)。(Python 3.6)可以使用下划线给数字分组(Java也可)。
universe_age = 14_000_000_000
1.3 变量和常量
1.3.1 变量
同时赋值:
var1, var2 = exp1, exp2
因此,可以用
y, x = x, y
来交换x, y的值。
定义全局变量
① 直接在函数外定义全局变量。
② 在函数内使用global语句定义:global var
。
1.3.2 常量
- 常量:手动大写,没有内置常量类型。
1.4 格式化(数和字符串)
format()函数
返回字符串。
语法:
format(item, format-specifier)
格式化标识符(format-specifier):
"(width).(precision)(转换码)"
或者:
① "{:说明符}".format(item)
② [Python 3.6] f"{:说明符}"
总结
说明符 转换码 格式化的对象 格式 备注 "10.2f" f 浮点数 宽度为10,精度为2 小数点 .
占1个宽度"10.2e" e 浮点数(用科学计数法表示) 宽度为10,精度为2 e
,+
/-
各占一个宽度"5b/o/d/x" b/o/d/x 二/八/十/十六进制整数 宽度为5 "10.2%" % 数 将数格式化为百分数 %
占一个宽度"50s" s 字符串 宽度为50 "<..." 左对齐 ">..." 右对齐 格式化浮点数(f):
① 小数点
.
占1个宽度。格式化成科学计数法(e)
①
e
,+
/-
各占一个宽度。格式化成百分数(%)
%
占一个宽度格式化整数(b,o,d,x)
格式化字符串(s)
调整格式(<,>)
①
<
左对齐,>
右对齐。② 数默认向右对齐,字符串默认向左对齐。
格式化的问题
① 如果item的宽度大于格式符里指明的宽度,宽度会自动增加。
② 可以省略宽度,默认为0。
1.5 三种基本程序错误
三种程序错误:
- 语法错误
- 运行时错误(
FileNotFoundError
等) - 逻辑错误
1.6 其他
- 可以在一行的结尾处放置一个
\
继续符号来表示语句继续到下一行。
二、输入与输出
2.1 控制台
输入
input()函数
- 格式:
input("提示用户输入的信息")
- 读取的结果是字符串。
- 格式:
把读取的字符串转换成数值类型:
① int()函数:不能用于非整型字符串。可以有先导0
格式:
num = int(input("enter a number: "))
int()
还可以用于类型转换(浮点型→整型),舍弃小数部分。(若不舍弃用round函数)var = 5.7
a = round(var) # a = 6
② eval()函数:可用于整型和浮点型字符串。不能有先导0
○ 格式:num = eval(input("enter a number: "))
输出
print()函数
不换行输出:
print(item_1,item2, ..., end = "any ending string" )
换行输出:
print(item1, item2, ...)
字符串连接:使用
+
。
2.2 文件
2.2.1 输入输出重定向
- 输入重定向:
python xxxx.py < textName.txt
- 输出重定向:
python xxxx.py > output.txt
例:
python xxxx.py < textName.txt > output.txt
从 textName.txt
中获取数据,把数据储存在 output.txt
中。
2.2.2 文件的输入与输出 (I/O)
模式 | 描述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |

模式 | r | r+ | w | w+ | a | a+ |
---|---|---|---|---|---|---|
读 | + | + | + | + | ||
写 | + | + | + | + | + | |
创建 | + | + | + | + | ||
覆盖 | + | + | ||||
指针在开始 | + | + | + | + | ||
指针在结尾 | + | + |
文件读取
读取整个文件:
with open('文件名filename', '模式') as f: # 一般用f来表示文件对象
value = f.read()
- with,在不再需要访问文件时将其关闭。
- 有效范围:缩进行。
- open()函数,以相应模式打开相应文件。
- read()方法,读取文件的全部内容。
- with,在不再需要访问文件时将其关闭。
逐行读取文件:for循环
with open(filename) as f:
for line in f:
print(line)
创建关于包含文档内容的列表:
with open(filename, encoding='utf-8') as f:
lines = f.readlines() for line in lines:
print(line.rstrip)
*encoding参数:在系统的默认编码和需要读取的文件使用的编码标准不一致时,必须使用。如,
utf-8
,utf-16
,gbk
等。
写入文件('w')
第二个实参——写入模式:读取模式('r')、写入模式('w')、附加模式('a')、读写模式('r+')。
附加模式('a')、写入模式('w')下,文件不存在,将会自动被创建。
文件路径
- 代码中表示路径时,可以使用
/
和\\
。
- 代码中表示路径时,可以使用
文件对象方法:
filename.write('text')
。split()方法:以空格为分隔符将字符串分成多个部分。可以用于粗略统计文本字数。
三、数据类型
3.1 数据类型
字符和字符串
建议:对单个字符使用 'a',对多个字符使用 "abc"。
转义字符:
\f 换页符
\r 回车符:把光标移到同一行的第一个位置
字符串、数字的转换:
- ord(char)函数:返回char对应的ASCII码值。
- chr(code)函数:返回code对应的字符。
- str()函数:把数字转换为一个字符串。
在字符串中使用变量:
①(Python 3.6)f字符串格式:
var = f"{var_1} {var_2}"
②(Python 3.5及更早)format方法:
var = "{} {}".format(var_1, var_2)
字符串中的空白:
空白符包括:' ', \t, \f, \r, \n等。
lstrip() # 右侧right的空白
rstrip() # 左侧left的空白
strip() # 左右两侧
布尔表达式和条件表达式
布尔表达式
德摩根律
not (a and b) not a or not b
not (a or b) not a and not b
条件表达式
- 格式:
expression_1 if boolean_expression else expression_2
- 格式:
3.2 类型转换
bool()
函数:非零数→True, 0 → False。int()
函数,float()
函数。
四、循环
while循环,for循环。
4.1 while 循环:条件控制循环
注意:
在循环控制中不要使用浮点值来比较相等
格式:
while expression:
# 循环体
哨式控制:指定一个哨兵值,表明输入的结束。
while var != 0:
4.2 for 循环:计数器控制循环
语法:
for var in sequence:
# 循环体
range()函数:
注意:range函数中的值必须是整数。
range(a)
等价于range(0,a)
。range(a, b, k)
中,k为步长。① 当k为正整数时,序列的最后一个数小于 b ;
for var in range(3, 9, 2):
print(var)
'''
输出为:
3
5
7
'''
② 当k为负整数时,序列的最后一个数大于 b 。
for var in range(5, 1, -1):
print(var)
'''
输出为:
5
4
3
2
'''
五、函数
注意
位置参数 在 关键字参数 之前。
非默认参数 在 默认参数 之前。
Python 不支持定义两个同名的参数,但可以通过不同的方式来调用函数。
如果定义了同名的函数,后定义的函数会取代之前定义的函数。
定义全局变量:
① 直接在函数外定义全局变量。
② 在函数内使用global语句定义:global var
。
5.1 函数的定义
定义格式:
def 函数名(参数):
"""可以在此处写有关此函数的相关内容"""
# 函数体
传递参数
位置参数
- 含义:调用函数时传入实际参数的数量和位置都必须和 定义函数时 保持一致。
关键字参数,例:
def function_name(argu1ment):
... function_name(argument = '...')
默认参数:给形参指定默认值,必须在形参列表的末尾。
5.2 分类:返回值
根据函数是否有返回值,可以将函数分为 带返回值函数 和 无返回值函数。
带返回值函数
可以返回多个值。
return a, b
var_1, var_2 = function(...)
无返回值函数
- 默认返回一个特殊值
None
。 - 无返回值函数可以用 return 语句,一般为
return None
或者return
。
5.3 内置函数、math模块中的部分函数
内置函数
| 函数 | 描述 | 例 / 备注 |
| ------------------------------------- | ------------------------------------------------------------ | ---------------------- |
| abs(x) | 返回x的绝对值 | |
| max(iterable, [, key, default]) | 返回最大值,可指定key=len
等 | iterable:可迭代的对象 |
| min(x1,x2,...) | 返回最小值 | |
| pow(a,b) | 返回ab的值,类似于a**b | |
| round(x) | 返回与x最接近的整数。
如果x与两个整数的接近程度相同,则返回偶数值 | round(4.5)=4 |
| round(x,n) | 保留小数点后n位小数的浮点值 | round(5.446,2)=5.47 |math模块中的数学函数(import math)和常量
(1) 数学函数:
函数 描述 例 fabs(x) 将 x 看作一个浮点数,返回它的绝对值 fabs(-2) = 2.0 ceil(x) 返回 x 向上取整的整数 ceil(-2.1) = -2 floor(x) 返回 x 向下取整的整数 floor(-2.1) = -3 exp(x) 返回 \(e^{x}\) 的值 log(x) 返回 \(log_{10}x\) 的值 log(x, base) 返回 \(log_{base}{x}\) 的值 sqrt(x) 返回 x 的平方根 sin(x), cos(x), tan(x) 返回 x 的正弦值/余弦值/正切值,
x 是角度的弧度值asin(x), acos(x) 返回 x 对应的弧度值 degrees(x) 将 x 从弧度转换为角度 degrees(1.57)=90 radians(x) 将 x 从角度转换为弧度 (2) 常量:
math.pi
math.e
5.4 random模块——生成随机数的部分函数
import random
randrange(x, y)
,生成一个大小范围在 \([x, y)\) 内的整数。randint(x, y)
,生成一个大小范围在 \([x, y]\) 内的整数。random()
,生成一个范围在 \([0,\space1.0]\) 之间的浮点数。
六、对象和方法
6.1 对象
id()
函数,返回该对象的id。(在程序执行的过程中,id不会改变)type()
函数,返回对象的类型/类。(type和class的含义相同)
6.2 方法
类中的函数称为方法。
调用方法的方式:
object.method()
八、特殊模块
8.1 turtle模块
8.2 time模块
- time.time()得到UNIX时间点(1970.01.01 00:00:00)
8.3 math模块
8.4 random模块
[Python]Python入门笔记:语法基础的更多相关文章
- C#快速入门笔记(1)——基础语法
C#快速入门笔记(1)——基础语法 总体框架:
- Python爬虫入门有哪些基础知识点
1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.想抓取什么?这个由你来控制它咯. ...
- 1 TensorFlow入门笔记之基础架构
------------------------------------ 写在开头:此文参照莫烦python教程(墙裂推荐!!!) ---------------------------------- ...
- Python数据分析入门之pandas基础总结
Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...
- Python 3 学习笔记之——基础语法
1. a, b = a, a + b 先计算右边表达式,然后再同时赋值给左边. 2. 条件控制和循环语句 条件控制 if condition_1: statement_block_1 elif con ...
- python数据分析入门笔记[1]
1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 ( ...
- Python爬虫入门:爬虫基础了解
有粉丝私信我想让我出更基础一些的,我就把之前平台的copy下来了,可以粗略看一下,之后都会慢慢出. 1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫 ...
- python的学习笔记01_4基础数据类型列表 元组 字典 集合 其他其他(for,enumerate,range)
列表 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: 1.可存放多个值 2.可修改指定索引位置对应的值,可变 3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问 ...
- thread/threading——Python多线程入门笔记
1 什么是线程? (1)线程不同于程序. 线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制: 多线程类似于同时执行多个不同程序. (2)线程不同于进程. 每个独立的进程有一个程 ...
- Python知识点入门笔记——特色数据类型(元组)
元组(tuple)是Python的另一种特色数据类型,元组和列表是相似的,可以存储不同类型的数据,但是元组是不可改变的,创建后就不能做任何修改操作. 创建元组 用逗号隔开的就是元组,但是为了美观和代码 ...
随机推荐
- 如何使用Github搭建自己的博客
1.前期准备 sudo apt-get install npm sudo npm install hexo -g 首先使用如下命令创建项目,name是你要创建的博客的名字: hexo init {na ...
- 【刷题-LeetCode】190 Reverse Bits
Reverse Bits Reverse bits of a given 32 bits unsigned integer. Example 1: Input: 0000001010010100000 ...
- centos下APUE 例程编译-解决报错与改写例子名字。
首先是编译生成libapue.a的库文件.按照readme的说法很简单改个目录make一下就好,但是在centos下还是有错.通过下面这篇博文<<UNIX环境高级编程中的apue.h错误& ...
- CSS基本语法(二)
目录 CSS基本语法(二) 八.CSS复合选择器 1.后代选择器** 2.子选择器 3.并集选择器** 4.伪类选择器 链接伪类选择器 :focus伪类选择器 总结 九.CSS的元素显示样式 1.概念 ...
- gin源码解读1-net/http的大概流程
gin框架预览 router.Run()的源码: func (engine *Engine) Run(addr ...string) (err error) { defer func() { debu ...
- 集合框架-TreeSet-Comparator比较器练习(字符串长度排序)
1 package cn.itcast.p5.treeset.test; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 ...
- jstack定位java程序CPU使用高问题
top top -Hp 进程id printf "0x%x\n" 2769746 jstack 进程id [root ~]$ printf "0x%x\n" 2 ...
- pycharm 安装插件
1.使用pip安装插件 pip安装指定版本的插件: pip install openpyxl==2.6.2 -i https://pypi.doubanio.com/simple/ -i后面跟的是&q ...
- HowToDoInJava Spring 教程·翻译完成
原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 Spring 5 Spr ...
- 「JOISC 2014 Day1」 历史研究
「JOISC 2014 Day1」 历史研究 Solution 子任务2 暴力,用\(cnt\)记录每种权值出现次数. 子任务3 这不是一个尺取吗... 然后用multiset维护当前的区间,动态加, ...