python学习笔记(一)基础知识
个人笔记 仅供参考
一、基础知识
本文主要介绍python开始学习应该掌握的一些基础知识。
1、算法
算法即解决一个问题的方法,由一系列必须按照顺序执行的操作说明组成,其中有些可以直接完成,有些需要特别注意,还有一些粗腰重复多次。
2、数和表达式
交互式python解释器可用作计算器,例如执行如下操作
>>> 2+2
>>> 53672+235253
这只是常见的运算,除法的运算结果为小数,即浮点数
>>> 1/2
0.5
如果想丢弃小数部分,即执行整除运算可使用双斜杠
>>> 1//2
0
在python 2.x中执行除法要导包
>>> from _future_ import divsion
求余(求模)运算,即返回执行整除时余下的部分
>>> 2.75%0.5
0.25
乘方运算符(求幂)
>>> 2 ** 3
8
十六进制,八进制,二进制
如下表示
>>> 0xAF
175
>>> 0o10
8
>>> 0b1011010010
722
3、变量
变量是表示特定值的名称
例如用名称x来表示3
>>> x = 3
4、语句
例如print语句和赋值语句,与表达式的区别是:表达式是一些东西而语句是做一些东西。即语句是让电脑完成一些操作的指令
5、获取用户输入
python中通过input即可获取用户输入,举例
>>> input("your name: ")
your name:
括号中的内容是显示出来提示用户该输入什么内容的。
实际使用时会把用户输入的东西直接存在变量中
>>> a = input("your name:")
your name:w
>>> print(a)
w
6、函数
函数犹如小型程序,可用来执行特定的操作。python提供了很多函数,可用来完成很多神奇的任务。python自带的一些函数叫做内置函数,当然可以自己编写函数。
介绍一个简单的内置函数:pow函数,这个函数是用来执行乘方运算的。
>>> 2 ** 3
8
>>> pow(2,3)
8
像这样使用函数被称为调用函数,向它传递实参(这里为2和3),然后它经过处理后返回一个值
7、模块
可将模块视为扩展,通过将其导入可以扩展python的功能。要导入模块,需使用命令import
。例如:
>>> import math
导入后再以module.function
的方式使用模块内的函数。
还有一种导入模块的方法
>>> from math import sqrt
从某个地方导入,这里是从math模块导入sqrt函数
7.1介绍几个函数
这里再介绍几个math模块中有用的函数。例如,ceil和floor相反,返回大于或等于给定数的最小整数
>>> import math
>>> math.ceil(32.3)
33
>>> math.floor(32)
32
7.2、cmath和复数
函数sqrt用于计算平方根。下面看看向他传递一个负数的情况
>>> from math import sqrt
>>> sqrt(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
可以看到报错了。如果我们坚持将值域限制为实数,并使用其近似的浮点数实现,就无法计算负数的平方根,负数的平方根为虚数,而由实部和虚部组成的数为复数。python标准库提供了一个专门用于处理复数的模块。
>>> import cmath
>>> cmath.sqrt(-1)
1j
注意:python没有专门表示虚数的类型,而将虚数视为实部为零的复数
8、海龟绘图法
一种强大的绘图模块
使用前先导入模块中所有函数
from turtle import *
以下代码可以绘制一个三角形
forward(100)
left(120)
forward(100)
left(120)
forward(100)
在终端上运行老是卡住。。。。。
抬笔可以使用penup()
把笔放下可用pendown()
9、命令提示符运行python脚本
cd到存储目录下,执行命令python hello.py
,这里hello.py是文件名
双击运行:
在Windows中双击会打开一个DOS窗口,但执行完后会立即关闭。可加入以下代码解决:`input("Press <enter>")`现在运行完后会等你按回车再关闭。
10、注释
python中使用#
号来写注释,#号后到本行结尾都是注释
多行注释使用三个双引号开头,三个双引号结尾
"""
123
456
"""
11、字符串
11.1单引号字符串以及对引号转义
示例:
>>> "hello world"
'hello world'
python打印字符串时使用了单引号,其实两种引号没什么差别,但在某些情况下可能会使用到两种引号
>>> "Let's go"
"Let's go"
>>> '"hello,world",she said'
'"hello,world",she said'
在两种引号都使用了的情况下python会照原样打印
但是如果这样写就会出问题:
>>> 'let's go'
File "<stdin>", line 1
'let's go'
^
SyntaxError: invalid syntax
在这里python不知道怎么处理let后面的内容。这里有两种解决办法,一种是使用双引号,第二种是使用转义字符。
>>> 'Let\'s go'
"Let's go"
对双引号也可以这样操作。
11.2拼接字符串
来看一下前述字符串的另一种表示方法
>>> "Let's say "'"Hello world"'
'Let\'s say "Hello world"'
这里把python把两个依次输入的字符串拼到了一起。还可以把他们存在变量中,在是用加号相加。
11.3字符串表示str和repr
python在打印字符串时都是将其用引号括起,想去掉引号可以在打印时使用print()
>>> print("hello,world")
hello,world
加上换行符的编码\n
>>> print("hello,\nworld")
hello,
world
通过两种不同的机制将值转换成了字符串,可以使用str和repr函数直接使用者两种机制
>>> print(repr("hello,\nworld"))
'hello,\nworld'
>>> print(str("hello,\nworld"))
hello,
world
在实际使用中经常用来转化一些值
11.4长字符串、原始字符串和字节
11.4.1长字符串
要表示很长的字符串可使用三引号
>>> print('''This is a very long string. It continues here.
... And it's not over yet. "hello,world!"
... Still here.''')
This is a very long string. It continues here.
And it's not over yet. "hello,world!"
Still here.
常规字符串也可以横跨多行,只需要在结尾加上反斜杠
>>> print \
... ('hello,world')
hello,world
11.4.2原始字符串
原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用
使用普通字符串时如果要打印一个路径可能会出现如下的错误
>>> path = 'C:\nowhere'
>>> path
'C:\nowhere'
>>> print(path)
C:
owhere
在打印时\n呗判断为换行符了
可以通过如下方式解决,对\进行转义
>>> print('C:\\nowhere')
C:\nowhere
但对于很长的路径,就会变得很麻烦。这时就要使用原始字符串
>>> print(r'C:\nowhere')
C:\nowhere
如你所见,原始字符串有前缀r表示。但是引号还是必须转义,不然不能处理剩下的字符串。但用于转义的反斜杠也将包含在最终的字符串中
>>> print(r'Let\'s go!')
Let\'s go!
>>> print(r'Let's go!')
File "<stdin>", line 1
print(r'Let's go!')
^
SyntaxError: invalid syntax
还有,原始字符串的结尾不能是反斜杠,如果打印的最后是反斜杠应该如下处理
>>> print(r'C:\nowhere''\\')
C:\nowhere\
11.4.3字节
12、小结
本章设计的函数:
函数 | 描述 |
---|---|
abs(number) | 返回指定数的绝对值 |
bytes(string,encoding[,errors]) | 对指定的字符串进行编码,并以指定的方式处理错误 |
cmath.sqrt(number) | 返回平方根;可用作负数 |
float(object) | 将字符串或数字转换为浮点数 |
heip([object]) | 提供交互式帮助 |
input(prompt) | 以字符串的方式获取用户输入 |
int(object) | 将字符串或数转换为整数 |
math.ceil(number) | 以浮点数的方式返回向上圆整的结果 |
math.floor(number) | 以浮点数的方式返回向下圆整的结果 |
pow(x,y[ ,z]) | 返回x的y次方对z求模的结果 |
print(object,...) | 将提供的实参打印出来,并用空格分隔 |
repr(object) | 返回指定的字符串表示 |
round(number[ ,ndigits]) | 四舍五入为指定的精度,正好为5时舍入到偶数 |
str(object) | 将指定的值转换为字符串。用于转换bytes时可指定编码和错误处理方式 |
小结
这一篇主要就是开始学习python应有的基础知识。只需要记住一些常用的即可,其他的可以在敲代码的过程中慢慢熟悉。
我感觉问这些笔记对编程新手可能会不太友好,毕竟学python最好的方法是由浅入深,先从Hello world开始。以后有时间可能会写一篇适合新手的教程。这篇大家当文档看看就好了。