Python是世界上最最最风行的编程语言之一
Python曾经间断多年占据各种语言的排行榜第一位,在数据分析畛域和R语言,之前始终是不分伯仲,但在最近几年,Python受欢迎水平越来越高,越来越多的Python剖析工具库像雨后春笋般冒了进去,很多开源的数据分析库受到数据分析师们的欢送。
从数据采集、荡涤、解决、剖析、报表、数据挖掘、机器学习,Python都提供了成熟的解决方案,能够说学会了Python,能够在数据分析畛域上天入地。事实上,Python的一些罕用库,比方像数据分析三剑客(Numpy/Pandas/Matpolib)等等,曾经成为各大互联网企业的数据分析师们日常必备工具。
Python在各个领域都有着广泛应用,包含数据分析、服务器开发、运维开发、人工智能开发,甚至少儿编程也开始引入Python。
可用版本目前有两个:
1. Python 2
2. Python 3
这两个版本只存在一些细微差别,前者面上技术市场较早,遍及度较高,社区比拟沉闷,但Python官网已于2020年1月1日起不再保护,因而当初主推Python 3,取而代之只是工夫的问题,好在区别不大,还是举荐开发者用Python 3吧。
从开发环境来说次要有两种:
1. 命令行交互模式:
2. 集成开发环境(PyCharm):
两种形式各有优缺点,简略说来就是,交互模式简洁,功能强大,然而难操作,要想吃鸡全靠记,多行编码简单;IDE环境,命令直观,易上手,需额定软件或插件反对,哪里不会点哪里。
编码方式没有好坏之分,择其“擅”者而从之,兴许命令行模式下的几个字符能实现的性能,在IDE里要点半天,兴许IDE里的快捷命令菜单点一下就能预写出大段难记的命令。比方Vim、Lua、Scala,亦或spark-shell、hbase shell、zkCli.sh,再比方Eclipse、IEDA、Visual Studio、VS Code、XCode,交互模式就是技术的里子,IDE就是技术的体面,里外都拿下,那就成大佬了。
总之交互模式下,就是与技术外围的零距离接触,IDE模式下,就是隔山打牛,利器加身,老手先用IDE,经验丰富了再钻研交互模式,定会发现奥妙无穷。
接入正题
变量申明篇
x, y = 123,456print(x, y)
123 456
#快捷替换x, y = y, xprint(x, y)
456 123
输入篇
print("Hello World")
Hello World
print("Hello" , "World")
Hello World
print("Hello" + "World")
HelloWorld
print("My age is", 18)
My age is 18
#ERRORprint("My age is " + 18)
Traceback (most recent call last): File "F:/lagou/TestPython/helloworld.py", line 1, in <module> print("My age is " + 18)TypeError: must be str, not int
print("My age is " + str(18))
My age is 18
数据类型篇
字符串类型
sentence = "This's a very long long long \long long sentence............"print(sentence)
This's a very long long long long long sentence............
paragraph = """This is line 1,this is line 2,this is line 3.The End.print(paragraph)"""
*
This is line 1,
this is line 2,
this is line 3.
The End.
*
空值类型 None
temp = None print(temp)
None
布尔类型转换
对于数值类型,所有的非零值转换为True, 只有零值才转换为False
# 以下值都为Trueprint( bool(1) )print( bool(-1) )print( bool(255) )print( bool(0.0000001) )print( bool(-99.99) )# 上面的值为False print( bool(0) )print( bool(0.0) )
对于任何非空的字符串,转换为布尔值都是True
# 这是一个空字符串,转换后果为Falseprint( bool("") )# 转换后果为Trueprint( bool("abc") )# 这是一个只蕴含一个空格的字符串,转换后果为为Trueprint( bool(" ") )
*
False
True
True
*
空值转换为布尔值永远都是False
print( bool(None) )
False
其余类型 --> 字符串
str(True) # 后果是'True' str(False) # 后果是'False' str(None) # 后果是'None'str(123) # 后果是'123'
字符串 --> 数字
int(" 100 ") # 后果为100int(3.14) # 后果为3float(100) # 后果为100.0
四舍五入round
# 保留小数点后三位,因为第四位是5,所以后果是3.142 round(3.1415926, 3)
运算符篇
除和整除
print(4 / 2) # 后果是2.0print(5 / 2) # 后果是2.5 print(5 // 2) # 整除 后果是2
字符串应用运算符
print("apple " + "apple " + "apple ")
apple apple apple
print("apple " * 5)
apple apple apple apple apple
赋值运算符
x = 2y = 3x **= 3print(x)
8
逻辑运算符 and or not
条件判断篇
条件夹在关键字和冒号(:)之间
缩进决定作用域
elif相当于java的else if
score = 100 if score >= 60: if score < 70: print("您的考试成绩为合格") elif score < 90: print("您的考试成绩为良好") else: print("您的考试成绩为优良") else: print("您的考试成绩不及格")
简洁复合条件
age = 22if 18 < age < 60: print("你曾经不是个孩子啦,该去工作啦")
pass是Python的关键字,示意什么也不做
result = Noneif result: pass else: print("什么播种都没有")
0值、None 和空字符串转换为布尔值后都是False
循环篇
wihle循环
lap = 0while lap < 10: lap += 1 print("我跑完了第" + str(lap + 1) + "圈")
*
什么播种都没有
我跑完了第2圈
我跑完了第3圈
我跑完了第4圈
我跑完了第5圈
我跑完了第6圈
我跑完了第7圈
我跑完了第8圈
我跑完了第9圈
我跑完了第10圈
我跑完了第11圈
*
for循环
seq = "hello"for s in seq: print(s)
*
h
e
l
l
o
*
for i in range(5): print(i)
*
0
1
2
3
4
*
循环嵌套
# 指定长方形的宽和高width, height = 10, 5# 因为是从上往下开始打印,所以先遍历高度for i in range(height): for j in range(width): print("*", end="") print()
**************************************************
for i in range(5): for j in range(i + 1): print("*", end="") print()
****************
for i in range(1, 10): for j in range(1, i + 1): print("%s*%s=%s" % (j, i, i * j), end=" ") print()
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81