python笔记(1)

一、Python语言的前世今生

Python的创始人是吉多·范罗苏姆(Guido van Rossum) 。
1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
之所以选中Python作为程序的名字,是因为他是BBC电视剧――蒙提·派森的飞行马戏团(Monty Python’s Flying Circus)的爱好者。
ABC是由吉多参加设计的一种教学语言。就吉多本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,吉多认为是非开放造成的。
吉多决心在Python中避免这一错误,并获取了非常好的效果,完美结合了C和其他一些语言。

Python的发展历史

  • 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。
  • 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。
  • Python 1.0 - January 1994增加了lambda, map, filterand reduce.
  • Python 2.0 -October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础Python 2.4 - November 30, 2004,同年目前最流行的WEB框架Django诞生
  • Python 2.7 - july 3, 20102014年11月,宣布Python2.7支持到2020年,并重申不会发布2.8版本,因为预计用户将尽快转向Python3.4+
  • Python 3.0 - December 3, 2008o o 。
  • Python 3.4 - March 16,2014
  • Python 3.5 - September 13,2015
  • Python 3.6 - December 16,2016
  • Python 3.7 - 2018年6月27日
  • Python 3.8 - 2019年10月15日

Python的优点

  • 第一,Python的数据分析能力啡常突出。它经常被用于数据分析领域,甚至成了大数据的标配,就因为Python语言对数据的统计和分析的方便。随着时间的发展,这个软件已经是一个生态了,在数据领域已经是一个杀手锏级的应用,人工智能也已经离不开python了。

  • 第二,Python的语法非常的简单,可读性非常强。配合Markdown语言,你甚至不需要怎么调整,就能写出一篇不错的可用于发表的文章来。学习这门语言的要求基础几乎就是0。

  • 第三,Python的学习资源非常丰富。因为使用广泛,学习方便,所以相关的资源也是非常的多,非常适合像我这样的小白来学习。

  • Python是解释型语言

请添加图片描述### Python的主要应用领域

  • 云计算:云计算最火的语言,典型应用OpenStack
  • WEB开发:众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox,豆瓣。
  • 科学运算、人工智能:典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维:运维人员必备语言
  • 爬虫:通过代码来模拟人进行页面访问,对信息进行批量的获取
  • 金融︰量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因︰作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI: PyQT,WxPython,TkInter

二、Python基础语法

2.1 注释

  • 单行注释 # 开头
  • 多行注释
#  这是一个单行注释
print('hello world')
""" 
	这是一个多行注释,可以换行
"""
print('hello world')
  • 注释的作⽤:⽤⼈类熟悉的语⾔对代码进⾏解释说明,⽅便后期维护。

  • 注释的分类

单⾏: # 注释内容 ,快捷键ctrl+/

多⾏: “”" 注释内容 “”" 或 ‘’’ 注释内容 ‘’'

解释器不执⾏注释内容

2.2 算术运算符

常见的算数运算符: + - * /

运算符描述实例
//取整除9 // 2 = 4
%取余数9 % 2 =1
**2 ** 3 =8

2.3 变量

1.定义变量

变量名 =

变量名⾃定义,要满⾜标识符命名规则。

2.标识符

标识符命名规则是Python中定义各种名字的时候的统⼀规范,具体如下:

  • 由数字、字⺟、下划线组成

  • 不能数字开头

  • 不能使⽤内置关键字

  • 严格区分⼤⼩写

False None True and as assert break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with  yield

命名习惯

  • ⻅名知义。

  • ⼤驼峰:即每个单词⾸字⺟都⼤写,例如: MyName 。

  • ⼩驼峰:第⼆个(含)以后的单词⾸字⺟⼤写,例如: myName 。

  • 下划线:例如: my_name 。

3.使用变量

my_name = 'TOM'
print(my_name)
schoolName = '陕西理工大学'
print(schoolName)

Debug⼯具:Debug⼯具是PyCharm IDE中集成的⽤来调试程序的⼯具,在这⾥程序员可以查看程序的执⾏细节和流

程或者调解bug。Debug⼯具使⽤步骤:

  • 打断点:⽬标要调试的代码块的第⼀⾏代码即可,即⼀个断点即可。

  • Debug调试:单击⽬标代码的⾏号右侧空⽩位置。

2.4 数据类型及输入输出

Python ⾥为了应对不同的业务需求,也把数据分为不同的类型。
请添加图片描述检测数据类型的⽅法: type()

a = 1
print(type(a)) # <class 'int'> -- 整型
b = 1.1
print(type(b)) # <class 'float'> -- 浮点型
c = True
print(type(c)) # <class 'bool'> -- 布尔型
d = '12345'
print(type(d)) # <class 'str'> -- 字符串
e = [10, 20, 30]
print(type(e)) # <class 'list'> -- 列表
f = (10, 20, 30)
print(type(f)) # <class 'tuple'> -- 元组
h = {10, 20, 30}
g = {'name': 'TOM', 'age': 20}
print(type(h)) # <class 'set'> -- 集合
print(type(g)) # <class 'dict'> -- 字典

格式化输出符号
在这里插入图片描述其他技巧:

  • %06d,表示输出的整数显示位数,不⾜以0补全,超出当前位数则原样输出

  • %.2f,表示⼩数点后显示的⼩数位数

age = 18
name = 'TOM'
weight = 75.5
student_id = 1
# 我的名字是TOM
print('我的名字是%s' % name)
# 我的学号是0001
print('我的学号是%4d' % student_id)
# 我的体重是75.50公⽄
print('我的体重是%.2f公⽄' % weight)
# 我的名字是TOM,今年18岁了
print('我的名字是%s,今年%d岁了' % (name, age))
# 我的名字是TOM,明年19岁了
print('我的名字是%s,明年%d岁了' % (name, age + 1))
# 我的名字是TOM,明年19岁了
print(f'我的名字是{name}, 明年{age + 1}岁了')
  • f-格式化字符串是Python3.6中新增的格式化⽅法,该⽅法更简单易读。

转义字符:

  • \n :换⾏。

  • \t :制表符,⼀个tab键(4个空格)的距离。

  • 结束符: 在Python中,print(), 默认⾃带 end="\n" 这个换⾏结束符,所以导致每两个 print 直接会换⾏展示,⽤户可以按需求更改结束符。
    键盘输入input函数:

input("提示信息")
  • 当程序执⾏到 input ,等待⽤户输⼊,输⼊完成之后才继续向下执⾏。

  • 在Python中, input 接收⽤户输⼊后,⼀般存储到变量,⽅便使⽤。

  • 在Python中, input 会把接收到的任意⽤户输⼊的数据都当做字符串处理。

password = input('请输⼊您的密码:')
print(f'您输⼊的密码是{password}')
# <class 'str'>
print(type(password))

数据类型的转换:

  • 转换数据类型的作用

    • 问:input()接收⽤户输⼊的数据都是字符串类型,如果⽤户输⼊1,想得到整型该如何操作?

      答:转换数据类型即可,即将字符串类型转换成整型。
      在这里插入图片描述

  • 练习需求:input接收⽤户输⼊,⽤户输⼊“1”,将这个数据1转换成整型。

# 1. 接收⽤户输⼊
num = input('请输⼊您的幸运数字:')
# 2. 打印结果
print(f"您的幸运数字是{num}")
# 3. 检测接收到的⽤户输⼊的数据类型 -- str类型
print(type(num))
# 4. 转换数据类型为整型 -- int类型
print(type(int(num)))
  • 其他类型转换
# 1. float() -- 转换成浮点型
num1 = 1
print(float(num1))
print(type(float(num1)))
# 2. str() -- 转换成字符串类型
num2 = 10
print(type(str(num2)))
# 3. tuple() -- 将⼀个序列转换成元组
list1 = [10, 20, 30]
print(tuple(list1))
print(type(tuple(list1)))
# 4. list() -- 将⼀个序列转换成列表
t1 = (100, 200, 300)
print(list(t1))
print(type(list(t1)))
# 5. eval() -- 将字符串中的数据转换成Python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1)))
print(type(eval(str2)))
print(type(eval(str3)))

2.5 条件语句

1.If语句

语法:

if 条件:
 条件成⽴执⾏的代码1
 条件成⽴执⾏的代码2
 ......

快速体验:

if True:
 print('条件成⽴执⾏的代码1')
 print('条件成⽴执⾏的代码2')
# 下⽅的代码没有缩进到if语句块,所以和if条件⽆关
print('我是⽆论条件是否成⽴都要执⾏的代码')

在这里插入图片描述

2.If…else语句

作⽤:条件成⽴执⾏if下⽅的代码; 条件不成⽴执⾏else下⽅的代码。

思考:⽹吧上⽹的实例,如果成年,允许上⽹,如果不成年呢?是不是应该回复⽤户不能上⽹?

语法:

if 条件:
 条件成⽴执⾏的代码1
 条件成⽴执⾏的代码2
 ......
else:
 条件不成⽴执⾏的代码1
 条件不成⽴执⾏的代码2
 ......

实例:

age = int(input('请输⼊您的年龄:'))
if age >= 18:
 print(f'您的年龄是{age},已经成年,可以上⽹')
else:
 print(f'您的年龄是{age},未成年,请⾃⾏回家写作业')
print('系统关闭')

注意:如果某些条件成⽴执⾏了相关的代码,那么其他的情况的代码解释器根本不会执⾏。

3.多重判断

思考:中国合法⼯作年龄为18-60岁,即如果年龄⼩于18的情况为童⼯,不合法;如果年龄在18-60岁之间为合法⼯龄;⼤于60岁为法定退休年龄。

语法:

if 条件1:
 条件1成⽴执⾏的代码1
 条件1成⽴执⾏的代码2
 ......
elif 条件2:
 条件2成⽴执⾏的代码1
 条件2成⽴执⾏的代码2
 ......
......
else:
 以上条件都不成⽴执⾏执⾏的代码

多重判断也可以和else配合使⽤。⼀般else放到整个if语句的最后,表示以上条件都不成⽴的时候执⾏的代码。

实例:

age = int(input('请输⼊您的年龄:'))
if age < 18:
 print(f'您的年龄是{age},童⼯⼀枚')
elif age >= 18 and age <= 60:
 print(f'您的年龄是{age},合法⼯龄')
elif age > 60:
 print(f'您的年龄是{age},可以退休')
  • 拓展: age >= 18 and age <= 60 可以化简为 18 <= age <= 60 。

4.if嵌套

思考:坐公交:如果有钱可以上⻋,没钱不能上⻋;上⻋后如果有空座,则可以坐下;如果没空座,就要站着。怎么书写程序?

语法:

if 条件1:
 条件1成⽴执⾏的代码
 条件1成⽴执⾏的代码
 
     if 条件2:
     条件2成⽴执⾏的代码
     条件2成⽴执⾏的代码

注意:条件2的if也是出于条件1的缩进关系内部。

实例:

"""
1. 如果有钱,则可以上⻋
 2. 上⻋后,如果有空座,可以坐下
 上⻋后,如果没有空座,则站着等空座位
如果没钱,不能上⻋
"""
# 假设⽤ money = 1 表示有钱, money = 0表示没有钱; seat = 1 表示有空座,seat = 0 表示
没有空座
money = 1
seat = 0
if money == 1:
 print('⼟豪,不差钱,顺利上⻋')
 if seat == 1:
 print('有空座,可以坐下')
 else:
 print('没有空座,站等')
else:
 print('没钱,不能上⻋,追着公交⻋跑')

**应用:**石头剪刀布猜拳游戏

需求分析:参与游戏的⻆⾊

  • 玩家

    • ⼿动出拳
  • 电脑

    • 随机出拳
  • 判断输赢

    • 玩家获胜
      在这里插入图片描述* 平局:玩家和电脑出拳相同,否则电脑获胜
  • 导入random模块

import 模块名
random.randint(开始,结束) 随机整数功能
"""
提示:0-⽯头,1-剪⼑,2-布
1. 出拳
玩家输⼊出拳
电脑随机出拳
2. 判断输赢
玩家获胜
平局
电脑获胜
"""
# 导⼊random模块
import random
# 计算电脑出拳的随机数字
computer = random.randint(0, 2)
print(computer)
player = int(input('请出拳:0-⽯头,1-剪⼑,2-布:'))
# 玩家胜利 p0:c1 或 p1:c2 或 p2:c0
if ((player == 0) and (computer == 1) or ((player == 1) and (computer == 2) or
((player == 2) and (computer == 0)):
 print('玩家获胜')
# 平局:玩家 == 电脑
elif player == computer:
 print('平局')
else:
 print('电脑获胜')

5.三目运算符

三⽬运算符也叫三元运算符或三元表达式。

语法如下:条件成⽴执⾏的表达式 if 条件 else 条件不成⽴执⾏的表达式

a = 1 
b = 2 
c = a if a > b else b
print(c)

2.6 循环

1.while的语法

while 条件:
 条件成⽴重复执⾏的代码1
 条件成⽴重复执⾏的代码2
 ......

需求:复现重复执⾏100次 print(‘学习学习学习’) (输出更简洁⼀些,我们这⾥设置5次)。

分析:初始值是0次,终点是5次,重复做的事情输出“学习学习学习”。

# 循环的计数器
i = 0
while i < 5:
 print('媳妇⼉,我错了')
 i += 1
print('任务结束')

实现1-100的累加和

i = 1
result = 0
while i <= 100:
 result += i
 i += 1
# 输出5050
print(result)

2.break和continue

break和continue是循环中满⾜⼀定条件退出循环的两种不同⽅式。

举例:⼀共吃5个苹果,吃完第⼀个,吃第⼆个…,这⾥"吃苹果"的动作是不是重复执⾏?

情况⼀:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第4个和第五个苹果,即是吃苹果的动作停⽌,这⾥就是break控制循环流程,即终⽌此循环。

情况⼆:如果吃的过程中,吃到第三个吃出⼀个⼤⾍⼦…,是不是这个苹果就不吃了,开始吃第四个苹果,这⾥就是continue控制循环流程,即退出当前⼀次循环继⽽执⾏下⼀次循环代码。

break实例

i = 1
while i <= 5:
 if i == 4:
 print(f'吃饱了不吃了')
 break
 print(f'吃了第{i}个苹果')
 i += 1

continue实例

i = 1
while i <= 5:
 if i == 3:
 print(f'⼤⾍⼦,第{i}个不吃了')
 # 在continue之前⼀定要修改计数器,否则会陷⼊死循环
 i += 1
 continue
 print(f'吃了第{i}个苹果')
 i += 1

3.While循环嵌套

语法

while 条件1:
 条件1成⽴执⾏的代码
 ......
 while 条件2:
 条件2成⽴执⾏的代码
 ......

总结:所谓while循环嵌套,就是⼀个while⾥⾯嵌套⼀个while的写法,每个while和之前的基础语法是相同的。

实例:打印星号三角形

# 重复打印5⾏星星
# j表示⾏号
j = 0
while j <= 4:
     # ⼀⾏星星的打印
     i = 0
     # i表示每⾏⾥⾯星星的个数,这个数字要和⾏号相等所以i要和j联动
     while i <= j:
         print('*', end='')
         i += 1
     print()
     j += 1

输出结果:

*
**
***
****
*****

打印9*9乘法表

# 重复打印9⾏表达式
j = 1
while j <= 9:
     # 打印⼀⾏⾥⾯的表达式 a * b = a*b
     i = 1
     while i <= j:
         print(f'{i}*{j}={j*i}', end='\t')
         i += 1
     print()
 	 j += 1

4.for循环

语法:

for 临时变量 in 序列:
     重复执⾏的代码1
     重复执⾏的代码2
     ......

快速体验:

str1 = '陕西理工大学'
for i in str1:
 	print(i)

5.else

循环可以和else配合使⽤,else下⽅缩进的代码指的是当循环正常结束之后要执⾏的代码。

while…else语法

while 条件:
 条件成⽴重复执⾏的代码
else:
 循环正常结束之后要执⾏的代码
i = 1
while i <= 5:
     print('陕理工')
     i += 1
else:
 	print('大学')

退出循环的方式:break continue

for…else语法

for 临时变量 in 序列:
     重复执⾏的代码
     ...
else:
 	循环正常结束之后要执⾏的代码

所谓else指的是循环正常结束之后要执⾏的代码,即如果是break终⽌循环的情况,else下⽅缩进的代码将不执⾏。

str1 = '陕西理工大学'
for i in str1:
 print(i)
else:
 print('循环正常结束之后执⾏的代码')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值