黑马程序员python(二)——注释 & 变量 & 输出 & 输入 & 转换数据类型 & 运算符

南楼画角 提交于 2020-02-16 01:16:15

视频见:https://www.bilibili.com/video/av54728208
python格式:https://www.python.org/dev/peps/pep-0008/

一、注释

1. 注释的作用

在这里插入图片描述

通过自己熟悉的语言,在程序中对某些代码进行标注说明,能够大大增强程序的可读性。

2 . 注释的分类及语法

注释分为两类:单行注释多行注释

  • 单行注释:只能注释一行内容,语法如下:
# 简单的说明可以放到一行代码的后面,一般习惯代码后面添加两个空格再书写注释文字
print('hello Python')  # 输出
  • 多行注释:可以注释多行内容,一般用在注释一段代码的情况,语法如下:
"""
    下面三行都是输出的作用,输出内容分别是:
    hello Python
    hello itcast
"""
print('hello Python')
print('hello itcast')

总结

  • 注释的作用:用人类熟悉的语言对代码进行解释说明,方便后期维护。
  • 注释的分类
    单行: # 注释内容,快捷键ctrl+?,一般解释一行代码
    多行: """ 注释内容 """''' 注释内容 ''',一般解释一段代码
  • 注意:解释器不执行注释内容

二、变量

1 . 变量的作用

在这里插入图片描述
举例体验:我们去图书馆读书,怎么样快速找到自己想要的书籍呢?是不是管理员提前将书放到固定位置,并把这个位置进行了编号,我们只需要在图书馆中按照这个编号查找指定的位置就能找到想要的书籍。

这个编号其实就是把书籍存放的书架位置起了一个名字,方便后期查找和使用。

程序中,数据都是临时存储在内存中,为了更快速的查找或使用这个数据,通常我们把这个数据在内存中存储之后定义一个名称,这个名称就是变量。
在这里插入图片描述

变量就是一个存储数据的时候当前数据所在的内存地址的名字而已。
作用: 给一段指定的内存空间起名,方便操作这段内存

2 . 定义变量

语法: 变量名 = 值

变量名自定义,要满足标识符命名规则。

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 = 'TOM'
print(my_name)

schoolName = '黑马程序员 '
print(schoolName)

总结: 变量名要先定义再使用

3. 认识数据类型

在 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)

# 需求:输出“今年我的年龄是18岁”

1. 格式化输出

所谓的格式化输出即按照一定的格式输出内容。

1.1 格式化符号

在这里插入图片描述

技巧

  • 有符号的整数可以在数字前加±,即包括正整数、负整数和0;无符号整数仅包括正整数
  • %06d,表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出
  • %.2f,表示小数点后显示的小数位数。
  • 多个变量用% (变量1,变量2,……)
  • 所有输出变量都可以用%s符号

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)       # 默认保留6位小数

# 我的名字是TOM,今年 18岁了
print('我的名字是%s,今年 %d岁了 ' % (name, age))

# 我的名字是TOM,明年 19岁了
print('我的名字是%s,明年 %d岁了 ' % (name, age + 1))

# 我的名字是TOM,明年 19岁了了
print(f'我的名字是{name}, 明年 {age + 1}岁了 ')

f-格式化字符串是 Python 3.6中新增的格式化方法,该方法更简单易读。

1.3 转义字符

  • \n:换行。
  • \t:制表符,一个 tab键(4个空格)的距离。
print("hello\nworld")

1.4 结束符

想一想,为什么两个 print会换行输出?

在这里插入图片描述

在Python中,print(), 默认自带 end="\n"这个换行结束符,所以导致每两个print直接会换行展示,用户可以按需求更改结束符。

四、输入

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

1. 输入的语法

input("提示信息")

2. 输入的特点

  • 当程序执行到 input,等待用户输入,输入完成之后才继续向下执行。
  • 在Python中, input接收用户输入后,一般存储到变量,方便使用。
  • 在Python中, input会把接收到的任意用户输入的数据都当做字符串处理。
password = input('请输入您的密码: ')

print(f'您输入的密码是 {password}')
# <class 'str'>
print(type(password))

控制台输出结果如下:
在这里插入图片描述

五、转换数据类型

1. 转换数据类型的作用

问:input()接收用户输入的数据都是字符串类型,如果用户输入 1,想得到整型该如何操作?
答:转换数据类型即可,即将字符串类型转换成整型。

2. 转换数据类型的函数

在这里插入图片描述

3. 快速体验

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

# 1. 接收用户输入
num = input('请输入您的幸运数字: ')

# 2. 打印结果
print(f"您的幸运数字是{num}")

# 3. 检测接收到的用户输入的数据类型 -- str类型
print(type(num))

# 4. 转换数据类型为整型 -- int类型
print(type(int(num)))

4. 实验

# 1. float() -- 转换成浮点型
num1 = 1
print(float(num1))            # 1.0
print(type(float(num1)))      # <class 'float'>

# 2. str() -- 转换成字符串类型
num2 = 10
print(type(str(num2)))

# 3. tuple() -- 将⼀一个序列转换成元组
list1 = [10, 20, 30]
print(tuple(list1))
print(type(tuple(list1)))       # (10, 20, 30)


# 4. list() -- 将一个序列转换成列表
t1 = (100, 200, 300)
print(list(t1))			# [100, 200, 300]
print(type(list(t1)))

# 5. eval() -- 将字符串中的数据转换成 Python表达式原本类型
str1 = '10'
str2 = '[1, 2, 3]'
str3 = '(1000, 2000, 3000)'
print(type(eval(str1)))		# <class 'int'>
print(type(eval(str2)))		# <class 'list'>
print(type(eval(str3)))		# <class 'tuple'>

六、运算符

运算符的分类

  • 算数运算符
  • 赋值运算符
  • 复合赋值运算符
  • 比较运算符
  • 逻辑运算符

1. 算数运算符

运算符 描述 实例
+ 10 + 20 = 30
- 10 - 20 = -10
* 10 * 20 = 200
/ 10 / 20 = 0.5
// 取整除 返回除法的整数部分(商) 9 // 2 输出结果 4
% 取余数 返回除法的余数 9 % 2 = 1
** 又称次方、乘方,2 ** 3 = 8
( ) 小括号 小括号用来提高运算优先级,即(1+2)*3输出结果为9

注意:

  • 混合运算优先级顺序:()高于 ** 高于 * / // % 高于 + -
  • + - *只要参与运算的有浮点数,结果就是浮点数;/结果都是浮点数

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)

d = 10
d *= 1 + 3
print(d)   # 40,1 + 3 = 4,d *= 4,推导出d = 10 * 4

优先级:

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

4. 比较运算符

比较运算符也叫关系运算符, 通常用来判断。
在这里插入图片描述

a = 7
b = 5
print(a == b)  # False
print(a != b)  # True
print(a < b)   # False
print(a > b)   # True
print(a <= b)  # False
print(a >= b)  # True

5. 逻辑运算符

运算符 逻辑表达式 描述 实例
and x and y 布尔“与”:如果x为False,x and y 返回False,否则它返回y的值。 True and False,返回False。
or x or y 布尔“或”:如果×是True,它返回True,否则它返回y的值。 False or True,返回True。
not not x 布尔“非”:如果x为True,返回False。如果x为False,它返回True。 not True 返回 False,not False 返回True
a = 1
b = 2
c = 3
print((a < b) and (b < c))  # True
print((a > b) and (b < c))  # False
print((a > b) or (b < c))   # True
print(not (a > b))          # True

注意: 表达式加()可以提高代码易读性

5.1 拓展

数字之间的逻辑运算

a = 0
b = 1
c = 2

# and运算符,只要有⼀一个值为 0,则结果为0,否则结果为最后⼀一个⾮非 0数字
print(a and b)  # 0
print(b and a)  # 0
print(a and c)  # 0
print(c and a)  # 0
print(b and c)  # 2
print(c and b)  # 1

# or运算符,只有所有值为0结果才为0,否则结果为第⼀一个⾮非 0数字
print(a or b)  # 1
print(a or c)  # 2
print(b or c)  # 1

6. 运算符的优先级

以下表格的算数优先级由高到最低顺序排列

运算符 描述
() 小括号(最高优先级),不属于运算符
**
* / % // 乘、除、取余数、取整除
+ - 加法、减法
<= < > >= 比较运算符
== != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
not or and 逻辑运算符
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!