Python学习-2021.1.28

python入门基础

Python发展历史:https://baike.baidu.com/item/Python/407313?fr=aladdin

解释器

下载地址:https://www.python.org/downloads/

下载安装PyCharm 

下载地址:http://www.jetbrains.com/pycharm/download/#section=windows

安装方法:https://www.cnblogs.com/cainiao-chuanqi/p/14328886.html

注释

⼀. 注释的作⽤

添加注释的代码通过⽤⾃⼰熟悉的语⾔,在程序中对某些代码进⾏标注说明,这就是注释的作⽤,能够⼤⼤增强程序的可读性。

⼆. 注释的分类及语法

注释分为两类:单⾏注释 和 多⾏注释。
  • 单⾏注释
只能注释⼀⾏内容,语法如下:
# 注释内容
  • 多⾏注释
可以注释多⾏内容,⼀般⽤在注释⼀段代码的情况, 语法如下:
 
复制代码
"""
    第⼀⾏注释
    第⼆⾏注释
    第三⾏注释
"""
'''
    注释1
    注释2
    注释3
'''
复制代码
快捷键: ctrl + /

输入中文显示方法:(头文件加注释)

#!/usr/bin/python
# _*_ coding: UTF-8 _*_
注意:解释器不执⾏任何的注释内容。

总结

  • 注释的作⽤
⽤⼈类熟悉的语⾔对代码进⾏解释说明,⽅便后期维护。
  • 注释的分类
单⾏: # 注释内容 ,快捷键ctrl+/
多⾏: """ 注释内容 """ 或 ''' 注释内容 '''
  • 解释器不执⾏注释内容

变量

 

⼀. 变量的作⽤

举例体验:我们去图书馆读书,怎么样快速找到⾃⼰想要的书籍呢?是不是管理员提前将书放到固定位置,并把这个位置进⾏了编号,我们只需要在图书馆中按照这个编号查找指定的位置就能找到想要的书籍。
这个编号其实就是把书籍存放的书架位置起了⼀个名字,⽅便后期查找和使⽤。
程序中,数据都是临时存储在内存中,为了更快速的查找或使⽤这个数据,通常我们把这个数据在内存中存储之后定义⼀个名称,这个名称就是变量。
变量就是⼀个存储数据的的时候当前数据所在的内存地址的名字⽽已。

⼆. 定义变量

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

2.1 标识符

标识符命名规则是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
复制代码

2.2 命名习惯

  • ⻅名知义。
  • ⼤驼峰:即每个单词⾸字⺟都⼤写,例如: MyName 。
  • ⼩驼峰:第⼆个(含)以后的单词⾸字⺟⼤写,例如: myName 。
  • 下划线:例如: my_name 。

2.3 使⽤变量

my_name = 'Gao'
print(my_name)
Name = '啦啦啦'
print(Name)

三、数据类型

在 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}
print(type(h)) # <class 'set'> -- 集合
g = {'name': 'TOM', 'age': 20}
print(type(g)) # <class 'dict'> -- 字典 
复制代码

输出

作⽤:程序输出内容给⽤户
print('hello Python')
age = 18
print(age)

⼀. 格式化输出

所谓的格式化输出即按照⼀定的格式输出内容。
1.1 格式化符号

技巧

  • %06d,表示输出的整数显示位数,不⾜以0补全,超出当前位数则原样输出
  • %.2f,表示⼩数点后显示的⼩数位数。

1.2 案例

复制代码
#格式化字符串除了%s,还可以写为 f'{表达式}'
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中新增的格式化⽅法,该⽅法更简单易读。
复制代码

1.3 转义字符

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

1.4 结束符

想⼀想,为什么两个print会换⾏输出?
print('输出的内容', end="
")
在Python中,print(), 默认⾃带 end=" " 这个换⾏结束符,所以导致每两个 print 直接会换⾏展示,⽤户可以按需求更改结束符。

总结

  • 格式化符号
%s:格式化输出字符串
%d:格式化输出整数
%f:格式化输出浮点数
  • f-字符串
f'{表达式}'
  • 转义字符
:换⾏
:制表符
print结束符
print('内容', end="")

输⼊

⼀. 输⼊

在Python中,程序接收⽤户输⼊的数据的功能即是输⼊。

1.2 输⼊的语法

input("提示信息")

1.3 输⼊的特点

  • 当程序执⾏到 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. 算数运算符

注意:
混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + - 

2. 赋值运算符

单个变量赋值
num = 1
print(num)
多个变量赋值
num1, float1, str1 = 10, 0.5, 'hello world'
print(num1)
print(float1)
print(str1)
多变量赋相同值
a = b = 10
print(a)
print(b)

3. 复合赋值运算符

复制代码
a = 100
a += 1
# 输出101 a = a + 1,最终a = 100 + 1
print(a)
b = 2 b *= 3
# 输出6 b = b * 3,最终b = 2 * 3
print(b) c = 10
c += 1 + 2
# 输出13, 先算运算符右侧1 + 2 = 3, c += 3 , 推导出c = 10 + 3
print(c)
复制代码

4. ⽐较运算符

⽐较运算符也叫关系运算符, 通常⽤来判断。

5. 逻辑运算符

总结

  • 算数运算的优先级
混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + -
  • 赋值运算符
=
  • 复合赋值运算符
+=
-=

优先级

1. 先算复合赋值运算符右侧的表达式
2. 再算复合赋值运算的算数运算
3. 最后算赋值运算

优先级

1. 先算复合赋值运算符右侧的表达式
2. 再算复合赋值运算的算数运算
3. 最后算赋值运算
  • ⽐较运算符
判断相等: ==
⼤于等于: >=
⼩于等于:<=
不等于: !=
  • 逻辑运算符
与: and
或:or
⾮:not

python之控制条件if语句

⼀. 了解条件语句

其实所谓的判断就是条件语句,即条件成⽴执⾏某些代码,条件不成⽴则不执⾏这些代码。

⼆. if 语法

2.1 语法

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

 三. 实例:上⽹

需求分析:如果⽤户年龄⼤于等于18岁,即成年,输出"已经成年,可以上⽹"。

3.1 简单版

age = 20
if age >= 18:
 print('已经成年,可以上⽹')
print('系统关闭')

3.2 进阶版

新增需求:⽤户可以输出⾃⼰的年龄,然后系统进⾏判断是否成年,成年则输出"您的年龄是'⽤户输⼊的年龄',已经成年,可以上⽹"。
# input接受⽤户输⼊的数据是字符串类型,条件是age和整型18做判断,所以这⾥要int转换数据类
型
age = int(input('请输⼊您的年龄:'))
if age >= 18:
 print(f'您的年龄是{age},已经成年,可以上⽹')
print('系统关闭')

四. if...else...

作⽤:条件成⽴执⾏if下⽅的代码; 条件不成⽴执⾏else下⽅的代码。
思考:⽹吧上⽹的实例,如果成年,允许上⽹,如果不成年呢?是不是应该回复⽤户不能上⽹?

4.1 语法

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

4.2 实⽤版:⽹吧上⽹

age = int(input('请输⼊您的年龄:'))
if age >= 18:
 print(f'您的年龄是{age},已经成年,可以上⽹')
else:
 print(f'您的年龄是{age},未成年,请⾃⾏回家写作业')
print('系统关闭')
注意:如果某些条件成⽴执⾏了相关的代码,那么其他的情况的代码解释器根本不会执⾏。

五、多重判断

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

5.1 语法

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

5.2 实例:⼯龄判断

复制代码
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 。

六、if嵌套

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

6.1 语法

复制代码
if 条件1:
 条件1成⽴执⾏的代码
 条件1成⽴执⾏的代码
 
 if 条件2:
 条件2成⽴执⾏的代码
 条件2成⽴执⾏的代码
复制代码
注意:条件2的if也是出于条件1的缩进关系内部。

6.2 实例:坐公交

6.2.1 判断是否能上⻋

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

6.2.2 判断是否能坐下

复制代码
"""
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('没钱,不能上⻋,追着公交⻋跑')
复制代码

6.3 if嵌套执⾏流程

七. 应⽤:猜拳游戏

需求分析:
  • 参与游戏的⻆⾊
玩家
  • ⼿动出拳
电脑
  • 随机出拳
判断输赢
  • 玩家获胜

  • 平局
玩家出拳 和 电脑出拳相同
  • 电脑获胜
随机做法:
1. 导出random模块
import 模块名
2. 使⽤random模块中的随机整数功能
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('电脑获胜')
复制代码

⼋. 三⽬运算符

三⽬运算符也叫三元运算符或三元表达式。
语法如下:
条件成⽴执⾏的表达式 if 条件 else 条件不成⽴执⾏的表达式

案例

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

小结

  • if语句语法
if 条件:
 条件成⽴执⾏的代码
  • if...else...
if 条件:
 条件成⽴执⾏的代码
else:
 条件不成⽴执⾏的代码
  • 多重判断
if 条件1:
 条件1成⽴执⾏的代码
elif 条件2:
 条件2成⽴执⾏的代码
else:
 以上条件都不成⽴执⾏的代码
  • if嵌套
if 条件1:
 条件1成⽴执⾏的代码
 if 条件2:
 条件2成⽴执⾏的代码
 ....
  • 三⽬运算符
条件成⽴执⾏的表达式 if 条件 else 条件不成⽴执⾏的表达式
作者:拾瑾
个性签名:愿历经千帆,归来仍少年.
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/ayoung/p/14341813.html