参考:
Python从零开始系列连载,by 王大伟 Python爱好者社区
Hellobi Live | 1小时破冰入门Python
《小甲鱼零基础入门学python》
Python进阶系列连载(1)——那些容易被忽略的问题(上)
《简明python教程》
Note:
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.
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更换主题和扩展包
type(233.0)
float
isinstance(233,float)
False
isinstance(233.0,float)
有 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+1j #复数
(1+1j)
type(1+1j)
complex
1+j
报错,NameError: name ‘j’ is not defined
(1314+520j).real #复数的实部
1314.0
(1314+520j).imag #复数的虚部
二进制0b(数字0,字母b)0B也可以;
八进制0o(数字0,字母o)0O也可以;
十六进制0x(数字0,字母x)0X也可以;
十进制,输入默认为十进制
0b100.0 # 二进制只能出现1 0
报错,SyntaxError: invalid syntax
字符串是一串字符,用‘字符串’或者“字符串”表示。
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!这段内容。
\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!
可以采用两种方法让转义字符失效:
从上述例子可以看出,python中空格为1个字符,汉字为一个字符,转义字符\t,\b,\r占一个字符。
'' #空字符
' ' #一个字符
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
注意切片选项的最后一个位置取不到,左闭右开区间[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’
BIF 就是Built-in-Functions,内置函数。为了方便程序员快速编写脚本程序(脚本就是要编程速度快快快!!!),Pyhton提供了非常丰富的内置函数,我们只需要直接调用即可,例如print()的功能就是“打印到屏幕”,input()的作用是接收用户输入。
dir(__builtin__) #输出中,小写的都是BIF,查看内置函数
输出有152个
help(BIF) #可查看使用说明
str.split(str="", num=string.count(str)).
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num – 分割次数。
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
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'
一种常规的方法是用一个临时变量
a,b = 5,10
print(a,b)
tmp = a
a = b
b = tmp
print(a,b)
output
5 10
10 5
python有更简洁的写法
a,b = 5,10
print(a,b)
a,b = b,a
print(a,b)
output
5 10
10 5
anagram:相同字母异序词,易位构词,变位词。eg:abc,bca,acb,可以用from collections import Counter
from collections import Counter
str1 = 'abc'
str2 = 'bca'
Counter(str1)==Counter(str2)
output
True
法一,用 reversed
,
a = '12345'
for char in reversed(a):
print(char,end='')
output 54321
法二,a[::-1],列表也同样适用
a = 'i love you'
a [::-1]
output 'uoy evol i'
法三
更多的字符串内置函数请看
Python 字符串
s = "bryant"
print(s.title())
output
Bryant
更一般的方法
s = "byant"
print(s[0].upper()+s[1:])
output
Bryant
小写的话把 upper
换成 lower
就可以了
很多人喜欢直接用绝对路径,但如果代码共享给其他人学习或者运行,很多情况下都不能直接跑通,建议使用相对路径!
Note: 更多连载请查看【python】