Python小记1

  其实开始Python的学习,已经是半年前的事了,但是一直只是断断续续的看了一些很基础入门的东西,目前还没有一个太深刻的理解。

  目前主要从视频开始学习,使用的是windows平台,其实一直比较想尝试linux系统中进行学习,但是大部分都没有,后来找到一个凳子学院的基础教学视频,但是使用的ubuntu,是图形化界面进行,既然是图形化为何不找更方便的windows来学习。

  文字描述部分取自网络,部分为个人理解。

 

一. Python简介

  既然学习一门新的技术,一定要开始做一点简单的介绍说明,它的发展历程、由来、优缺点、应用场景等等。

1.  Python起源及发展历程

  Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)(我简称为GD)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python's Flying Circus)。

  ABC语言是GD参与设计的一种教学语言。ABC语言优美、功能强大,主要为非专业程序员而设计,但是最终没有取得很大的成功,GD本人认为是因为其非开放、封闭所造成的。所以在产生Python开发构想的时候,既要延续ABC语言优美而强大的特点,还要避免其非开放的缺点,而更在这基础之上完成一些未曾实现的内容。

  1991年第一个Python解释器诞生,它是使用C语言实现,并能调用C语言库文件。

 

2. Python优缺点

2.1. 优点

代码量少:一般情况下解决同样的问题,Python的代码量相较于java少80%,这在实际工作中非常的重要,更少的代码量解决更多的问题;

易学习:Python语法优美,且处理一些问题代码量较少,所以相对于学习是相较于java要简单容易一些;

高级语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行

可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。

可嵌入性:你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

2.2. 缺点

速度慢:Python是一种解释型语言,根据解释型语言的特点,是逐行代码编译逐行执行,所以相较于C#编译型语言,一次性编译好再运行的特点,会速度慢一点,但是这种速度慢在人眼观察是不太能察觉出来的。

代码不能加密:因为Python是解释型语言,所以其代码都是明文的,作为安全性角度可能会造成一定困扰;

CPU利用率问题:Python线程不能利用多CPU,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。

 

3. Python的应用

3.1. 云计算: 云计算最火的语言, 典型应用OpenStack

3.2. WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django

3.3. 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas

3.4. 系统运维: 运维人员必备语言

3.5. 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测

3.6. 图形GUI: PyQT, WxPython,TkInter

 

二. Python的安装和环境准备

1. 运行环境及相关程序

1.1 目前我使用的win10环境;

1.2. Python安装包(https://www.python.org/

1.3. Pycharm安装包(https://www.jetbrains.com/pycharm/download/

2. 程序安装

这里不做赘述,由于是在windows上安装,是非常简单的。

 

三. 基础学习

1. print

和所有的语言学习第一课开始,大部分都会使用“hello world”,print从字面含义即可看出,是将内容输出到屏幕。

格式:print("需要输出的内容"),基本常识,在绝大多数编程语言中,符号都一定使用英文半角模式。

print("hello world")
print("你好,世界")
print(1.01*365)

由上图可知:在输出文本内容的时候,需要加上“”双引号包裹输出内容,这一点在大多数语言中都是共通的,比如sql中对于varchar型的数据用"单引号包裹。

但是在输出计算等特殊类型内容的时候,则不能使用引号包裹,因为一旦内容被引号包裹,程序会将内容转换为文本型,只有输出展示的作用。

 

2. 注释

注释的作用,只要在IT行业从业的人员应该都基本知道其重要性,这里依然啰嗦一下。在日常生产场景下,企业级应用项目,基本都是开发人员以工作组形式进行开发编写,这样就存在这代码交接的情况,团队内每个人的技术水平、理解水平等都不尽相同,这时候在比较复杂的功能逻辑代码处,写上原始开发者的注释,起到一个说明的作用,是尤为重要的,即使并不是用于代码交接,一套代码长年累月下来,代码量何其大,如果在出现问题需要回顾底层早期代码的时候,不一定能记得当时写这段代码,到底是什么含义、为什么要这样写。所以一个称职的IT从业人员,必须要有写注释的习惯。

注释的原则:只对重要的部分写注释;注释尽可能简洁明了。

# 学习单行注释
print("单行注释") # 代码尾部注释
# 第二个单行注释
print(3 ** 3)

由上图可知:# 是注释的标识符,编写注释的时候,先写一个“#” 然后空一个格(这样是为了美观,pycharm有快捷格式化代码功能),然后写上你的注释内容。注释可以单独一行编写,也可以在代码结尾编写。

 

3. 算数运算符

“+”,“-”,“*”,“/” :加减乘除;

“//” : 取整除,例如7/2=3…1  那么7//2=3;

“%” :去余数,例如8%3=2…2  那么8%3=2;

“**” : 幂次方,例如3**4,那么就代表数学中的3⁴=81;

由上图可知:在第8行代码,既有文本内容,又有算数运算符“*”,那么在Python中的处理逻辑是,重复文本内容。

 

4. 变量

4.1 变量类型和赋值

这里只简单提几个常见的变量类型。

string:字符串类型,也是最常见和最初学掌握的内容,使用“”双引号包裹内容;

int:整型,和大部分IT技术语言一样,int为整型自然数,直接填写数字内容即可;

bool:布尔型,常用做判断使用,True/False;

float:浮点型,带小数点的数值,直接填写数值内容;

# 不同类型的变量
# string类型
name = "小明"
# int类型
age = 18
# bool类型
gender = False
# float类型
hight = 1.75
# float类型
weight = 75.0
# 输出所有信息
# print("姓名:" + name, "年龄:" + age, "是否男生:" + gender, "身高:" + hight, "体重" + weight)
print("姓名:", name)
print("年龄:", age)
print("是否男孩:", gender)
print("身高:", hight)
print("体重:", weight)
print(name+str(age))

由上图可知:

  • 各个变量的赋值方式,使用“=”等于号将右侧的值赋予左侧的变量,在Python及大多数程序语言中“=”是赋值的意思,效果上可能与数学中的“=”相同,但是概念不能混淆;
  • 变量的输出方式,在print中直接填写变量即可;
  • Python会根据输入的值,自动判断变量的类型;

 

4.2 变量的计算

定义价格price,重量weight,金额money

# 定义价格
price = 7.99
# 定义重量
weight = 6.5
# 计算金额
money = weight * price
# 返回5元钱
money = money - 5
# 输出金额
print(money)

由上图可知:

  • Python会根据输入的值,自动判断变量类型,这一点就体现出便利性,而在大多数例如java、c#等等语言中,变量要先定义类型,再进行赋值,所以Python在这一点上就节省了定义变量类型的代码量;
  • 变量的计算可以直接使用变量带上算数运算符进行计算,也可以由变量与变量进行计算,前提是变量的类型要一致;

 

4.3 变量类型的转换

# 不同类型的变量
# string类型
name = "小明"
# int类型
age = 18
# bool类型
gender = True
# float类型
hight = 1.75
# float类型
weight = 75.0
# 输出所有信息
# print("姓名:" + name, "年龄:" + age, "是否男生:" + gender, "身高:" + hight, "体重" + weight)
print("姓名:", name)
print("年龄:", str(age)) # 转换为str类型输出
print("是否男孩:", str(gender)) # 转换为str类型输出
print("身高:", hight)
print("体重:", weight)
print(name + str(age))

由上图及代码可知:

  • 使用str(),可以将变量类型转换为字符型;
  • 按照这种样式,同样的int()也能将float类型变量转换为整型变量;

 

4.4 变量的格式化输出

# 输入姓名
name = input("输入姓名:")
# 人员编号
pno = int(input("请输入人员编号:"))
# 输入单价
price_str = float(input("苹果的单价:"))
# 输入重量
weight_str = float(input("苹果的重量:"))
# 计算价格
money = price_str * weight_str
# 输出比例
scale = 0.25
# 输出相关信息
print("我的姓名是 %s ,编号是 %06d,苹果单价是 %0.2f 元/斤,购买了 %0.2f 斤,应该付 %0.2f 元,输出比例是%0.2f%%" %
(name, pno, price_str, weight_str, money,scale))

 由上图可知:

  • input()用于记录用户输入的数据;
  • int(),float()将数据进行类型转换,同之前之前章节所属;
  • 在print()输出函数中,“%”百分号是格式化操作符,用于处理各类型数据,还有连接变量串的作用;
  • “%d”:输出字符串;
  • “%06d”:输出十进制整数的显示的位数,6代表显示6位数,0代表不足6位的时候用0补齐,例如上图人员编号是123,只有3位数,但是输出格式是%06d,还差3位就用0补齐,那么最后是000123;
  • %0.2f:输出float格式数字,0.2表示输出小数点后2位数字,不足用0补齐;
  • %0.2f%%:输出百分号,输出显示2位,这一句拆分为2个部分,“%02f”和“%%”,代表输出了2位小数和一个%百分号;

 

posted @ 2020-03-12 13:29  凶狠的木头哥  阅读(227)  评论(0编辑  收藏  举报