参考:
-
《简明python教程》
Note:
- 更多连载请查看【python】
最近一次修订时间为 2020-12-21
Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种广泛使用的高级编程语言,属于通用型编程语言,由Guido van Rossum 创造,第一版发布于 1991 年。作为一种解释型语言,Python 的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比 C++ 或 Java,Python 让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。
与 Scheme、Ruby、Perl、Tcl 等动态类型编程语言一样,Python 拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。
Python 虚拟机本身几乎可以在所有的操作系统中运行。Python 的官方解释器 CPython,用 C语言 编写,是一个由社区驱动的自由软件,目前由 Python软件基金会管理。(节选自维基百科)
工欲善其事必先利其器,磨刀不误砍柴工,python是一个不错的冲浪板,让你驰骋AI的浪潮。Let’s get start it.
1 基本数据类型
1.1 数字
1.1.1 整数(int)
type(233) #查看变量类型
int
isinstance(233,int) # 查看变量是否是猜测类型 isinstance(变量,猜测类型)
True
isinstance(233.0,int)
False
6**666 # 6的666次方
177309806357755465270499427328598301776288968306075410151885112575756027539778209314850999852445333091203575172280395689214341071142311799945944795749206487224435664711586155446695783530381869261940579191212338095792283942630165267180235014754878622816388898950208360661204545460054710039966583620720703499070583619219756147969379415147383218476051784215338153642534248184239668587526354555162441056191517103281698310461707618482703994245002903843491150719636915674602477294467393397773059407237966516507939097024659456
type (6**666)
int
可见python中int的范围很广,但float范围就没有这么大了
6.0**666 #浮点数 溢出错误
就会报错,OverflowError: (34, ‘Numerical result out of range’)
我用的是Anaconda 里面的 jupyter notebook编译的。下载地址:清华大学开源软件镜像站(去官网下载比较慢),更换主题请参考:Jupyter更换主题和扩展包
1.1.2 浮点数(float)
type(233.0)
float
isinstance(233,float)
False
isinstance(233.0,float)
True
1.1.3 布尔值(bool)
有 True 和False 两种
a = True
type (a)
bool
b = False
type (b)
bool
压缩,把布尔值去掉!eg,去掉 False,None,0,“”
alist = ["0",0,"False",False,"None",None,1,2,3,""]
print(list(filter(bool,alist)))
output
['0', 'False', 'None', 1, 2, 3]
1.1.4 复数(complex)
1+1j #复数
(1+1j)
type(1+1j)
complex
1+j
报错,NameError: name ‘j’ is not defined
(1314+520j).real #复数的实部
1314.0
(1314+520j).imag #复数的虚部
520.0
1.1.5 进制
二进制0b(数字0,字母b)0B也可以;
八进制0o(数字0,字母o)0O也可以;
十六进制0x(数字0,字母x)0X也可以;
十进制,输入默认为十进制
0b100.0 # 二进制只能出现1 0
报错,SyntaxError: invalid syntax
进制之间转换的BIF(内置函数)如下:
那么其它进制如何转为10进制呢?
1.2 字符串
1.2.1 基本介绍
字符串是一串字符,用‘字符串’或者“字符串”表示。
type (‘I love Kobe Bryant!’)
str
‘I love Kobe Bryant!’ # 使用单引号的字符串
‘I love Kobe Bryant!’
“I love Kobe Bryant!”#使用双引号的字符串
‘I love Kobe Bryant!’
但是如果一边用单引号‘一边用双引号‘’,就会报错。eg:
'I love Kobe Bryant!"
报错: SyntaxError: EOL while scanning string literal
字符串中,有引用一句话的时候,要注意,单双引号的嵌套使用。如果按照第一行的代码,系统会根据引号匹配,而无法识别Hi,Kobe!这段内容。
1.2.2 注释
单行注释, 用 # 表示。
多行注释,用三个单引号或三个双引号。
1.2.3 转义字符
\t,横向制表符,空出四个空格
Note:python 中一个:也相当于一个table
\n,换行
print(‘I\nlike Kobe!’) # \n,换行
I
like Kobe!
\b 退格,即往前删除一格
print(‘I\blike Kobe!’) # \b 退格,即往前删除一格
like Kobe!
print(‘We\blike Kobe!’)
Wlike Kobe!
’ 表示单引号,这样就可以用同种引号,解决上次引用问题了
可以采用两种方法让转义字符失效:
1.字符串前面加r
2.再加一个反斜线
1.2.4 字符串方法
1)字符串长度(len)
从上述例子可以看出,python中空格为1个字符,汉字为一个字符,转义字符\t,\b,\r占一个字符。
'' #空字符
' ' #一个字符
2)字符串连接(+) / f-string
用+号就可以了。
使用 f-string 来连接字符串
print("hello"+" "+"world")
hello = "hello"
world = "world"
print(f'{hello} {world}')
output
hello world
hello world
代替频繁的使用 +
3)字符串索引
string = 'Kobe Bryant' #注意是从0开始编号
len(string)
11
print(string[0],string[5])
K B
#负数表示倒数第几个
print(string[-1],string[-4])
t y
string[11] #超出范围
报错 IndexError: string index out of range
4)字符串切片
注意切片选项的最后一个位置取不到,左闭右开区间[a, b)
string = 'Kobe Bryant'
len (string)
11
string[1:4]#第1个位置切到第3个位置
‘obe’
string[1:8:2]#第1个位置切到第8个位置,步长为2
‘oeBy’
string[1:]#第1个位置切到最后
‘obe Bryant’
string[::]#切出所有
‘Kobe Bryant’
string[::2]#步长为2,切所有
‘Kb rat’
string[::-1]#逆序字符串
‘tnayrB eboK’
string[:4]#切到第4个,0,1,2,3
‘Kobe’
string[11:]#起始位置越界,返回了空字符串
‘’
string[:11]#结束位置越界,返回整个字符串
‘Kobe Bryant’
5)字符串常用BIF
BIF 就是 Built-in-Functions,内置函数。为了方便程序员快速编写脚本程序(脚本就是要编程速度快快快!!!),Pyhton提供了非常丰富的内置函数,我们只需要直接调用即可,例如print()的功能就是“打印到屏幕”,input()的作用是接收用户输入。
dir(__builtin__) #输出中,小写的都是BIF,查看内置函数
输出有152个
help(BIF) #可查看使用说明
更多的字符串内置函数请看
Python 字符串
split
str.split(str=“”, num=string.count(str)).
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。
strip
str.strip([chars]);
来自:https://www.runoob.com/python3/python3-string-strip.html
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符——转义字符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
count
s = "Hello, World! Hello, Bryant!"
print(s.count(" "))
print(s.count("l"))
output
3
5
find
eg:find()
:可以在字符串中查找子串是否存在:如果找到,返回的是子串的起始索引位置,当找不到子串时,返回 -1,也可以指定找的起始索引
s = 'bryant is my brother'
print(s.find('bryant'))
print(s.find('brother'))
print(s.find('is'))
print(s.find('is',7))
print(s.find('is',8))
output
0
13
7
7
-1
ljust / rjust
用指定字符补齐到指定长度
s = "Kobe Bryant"
print(s.ljust(30, "0"))
print(s.rjust(30, "0"))
output
Kobe Bryant0000000000000000000
0000000000000000000Kobe Bryant
replace()
eg:replace()
https://www.runoob.com/python/att-string-replace.html
address_new = address.replace(".","[.]")
上面这行代码可以把字符串中的 .
替换成 [.]
startswith()
判断是否以 XXX 为结尾的方法为 endswith
join()
例如字符串列表组成单个字符串,也即用逗号将 list 中的元素隔开
list1 = ["What's", "your", "name?", "How", "are", "you!"]
print(" ".join(list1))
output
What's your name? How are you!
lower 和 casefold
都能将字符串中的大写字母转换成小写
s = "Kobe Bryant"
print(s.lower())
print(s.casefold())
区别在于,lower 支持 ASCII 的大小写转换,也即 A-Z,casefold 功能更加强大,支持更多语言的大小写转化
参考 python中string.casefold和string.lower区别
upper / capitalize / title
都有让字母大写的功能,区别是:
- upper:所有字母大写
- title:所有词首字母大写
- capitalize:首个词首个字母大写
s = "hEllo, wOrld! hEllo, bRyant!"
print(s.upper())
print(s.title())
print(s.capitalize())
output
HELLO, WORLD! HELLO, BRYANT!
Hello, World! Hello, Bryant!
Hello, world! hello, bryant!
1.2.5 字符串 not support item assignment
string = 'bryant'
string[0] = 'e'
output
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-4294ee8688a9> in <module>()
1 string = 'bryant'
----> 2 string[0] = 'e'
TypeError: 'str' object does not support item assignment
用切片加组合的方式修改
string2 = 'e'+string[1:]
string2
output
'eryant'
1.2.6 字符串字节占用
string = "Hello World!!!"
print(len(string.encode('utf-8')))
output
14
2 附录
变量声明不存在,这是一个问题(它是什么,它在做什么,以及哪里需要它)
模块,你属于哪里?(这是一个迷宫,也是一个由 Pythonians 创造且真实存在的依赖地狱)
大量依赖冲突(比如说你使用模块 A 和 B,而两者都依赖于模块 C。但是 A 需要3.2或者更高版本的 C, B 需要2.9或者更早的版本 C)
不同的机器,不同的 Python(在每台新机器上,你都需要检查并重新安装各个版本及要求)
pip 之外的世界(整合大型项目,你可能会集成 C 包、 Fortran 包等,在这过程中你必须使用像 ‘gcc’、‘gfortran’ 这样的编译器,甚至其它更多编译器)
。。。
Note: 更多连载请查看【python】