Python编程基础03:变量与数据类型

一、数据类型

1、思维导图

Python编程基础03:变量与数据类型

2、案例演示

  • 编写程序 - 演示数据类型.py
    Python编程基础03:变量与数据类型
  • 说明:利用type()函数可以获取数据的类型
  • 说明:第11、12、13行,format()函数的第一个参数将二进制、八进制和十六进制数故意加了引号,否则输出时会自动转换成十进制整数显示。
  • 说明:第20行,format()函数的第一个参数故意写成嵌套引号,否则输出时就不会显示引号。
# -*- coding: utf-8 -*-
"""
功能:演示数据类型
作者:华卫
日期:2020年11月4日
"""

print('{}的类型是{}'.format(None, type(None)))

print('{}的类型是{}'.format(4568, type(4568)))
print('{}的类型是{}'.format('0b010', type(0b010)))
print('{}的类型是{}'.format('0o562', type(0o562)))
print('{}的类型是{}'.format('0x4ae', type(0x4ae)))
print('{}的类型是{}'.format(-67.35, type(-67.35)))
print('{}的类型是{}'.format(5+4j, type(5+4j)))

print('{}的类型是{}'.format(True, type(True)))
print('{}的类型是{}'.format(False, type(False)))

print('{}的类型是{}'.format("'泸职院'", type('泸职院')))

print('{}的类型是{}'.format([1, 3, 5], type([1, 3, 5])))
print('{}的类型是{}'.format((1, 3, 5), type((1, 3, 5))))
print('{}的类型是{}'.format({1, 3, 5}, type({1, 3, 5})))
print('{}的类型是{}'.format({1: 'Mike', 3: 'Amy', 5: 'Brian'}, 
                    type({1: 'Mike', 3: 'Amy', 5: 'Brian'})))
  • 运行程序,查看结果
    Python编程基础03:变量与数据类型

二、变量 - 数据容器

1、引入变量 - 超市购物

  • 现实生活中,大家去超市买东西的时候,往往都需要一个菜篮子,用来进行存储物品,等到所有的物品都购买完成后,在收银台进行结账即可。
    Python编程基础03:变量与数据类型

2、变量与赋值

(1)什么是变量

  • 在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量值。

(2)给变量赋值

  • 格式:变量名 = 数据

  • Python中的变量用来存储数据,变量可以理解为去超市购物的菜篮子,其类型和值在赋值的那一刻被初始化。

n1 = 12
n2 = 8
sum = n1 + n2
  • n1n2变量就好比一个小菜篮子,它们分别存储的数据是128sum变量存储的数据是n1n2这两个“菜篮子”中的数据累计之和。
  • 将12赋给n1,于是n1就是整型(int),当然n2和sum都是整型(int)。
    Python编程基础03:变量与数据类型

3、交换变量值

Python编程基础03:变量与数据类型

  • 在实际应用中,经常会遇到交换两个变量值的情况,比如在选择法排序里就会用到。
  • 交换变量值有几种方法,下面我们通过案例进行演示。
  • 编写程序 - 交换变量值.py
    Python编程基础03:变量与数据类型
# -*- coding: utf-8 -*-
"""
功能:交换变量值
作者:华卫
日期:2020年11月5日
"""

print('交换变量值方法【1】:')
a = 100
b = 200
print('交换前:a = {}, b = {}'.format(a, b))
t = a
a = b
b = t
print('交换后:a = {}, b = {}'.format(a, b))

print('交换变量值方法【2】:')
a = 100
b = 200
print('交换前:a = {}, b = {}'.format(a, b))
a = a + b
b = a - b
a = a - b
print('交换后:a = {}, b = {}'.format(a, b))

print('交换变量值方法【3】:')
a = 100
b = 200
print('交换前:a = {}, b = {}'.format(a, b))
a = a ^ b
b = a ^ b
a = a ^ b
print('交换后:a = {}, b = {}'.format(a, b))

print('交换变量值方法【4】:')
a = 100
b = 200
print('交换前:a = {}, b = {}'.format(a, b))
a, b = b, a
print('交换后:a = {}, b = {}'.format(a, b))

  • 运行程序,查看结果
    Python编程基础03:变量与数据类型
  • 说明:通过对比,方法【4】最简单,并且是Python所特有的,其余三种方法,用其它语言也能实现,比如Java语言。
    Python编程基础03:变量与数据类型
package net.hw.basic;

/**
 * 功能:交换变量值
 * 作者:华卫
 * 日期:2020年11月05日
 */
public class SwapVariableValues {
    public static void main(String[] args) {
        int a, b, t;

        System.out.println("交换变量值方法【1】:");
        a = 100;
        b = 200;
        System.out.println("交换前:a = " + a + ", b = " + b);
        t = a;
        a = b;
        b = t;
        System.out.println("交换后:a = " + a + ", b = " + b);

        System.out.println("交换变量值方法【2】:");
        a = 100;
        b = 200;
        System.out.println("交换前:a = " + a + ", b = " + b);
        a = a + b;
        b = a - b;
        a = a - b;
        System.out.println("交换后:a = " + a + ", b = " + b);

        System.out.println("交换变量值方法【3】:");
        a = 100;
        b = 200;
        System.out.println("交换前:a = " + a + ", b = " + b);
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
        System.out.println("交换后:a = " + a + ", b = " + b);
    }
}
  • 运行程序,查看结果
    Python编程基础03:变量与数据类型
    Python编程基础03:变量与数据类型

三、深入数值类型

(一)数值类型

1、整型

(1)十进制(decimal)

  • 在Python里,不带任何前缀的整数都是十进制整数,比如456-2000

(2)二进制(binary)

  • 在Python里,二进制整数以0b作为前缀,比如0b101011001-0b1011011

(3)八进制(octal)

  • 在Python里,八进制整数以0o作为前缀,比如0o567-0o175

(4)十六进制(hexadecimal)

  • 在Python里,十六进制整数以0x作为前缀,比如0x4a5f-0xa59e

(5)不同进制之间相互转换

  • 参看:各种进制数按位权展开
  • 其它进制转换成十进制的方法:按位权展开求和法
  • 十进制转换成其它进制的方法:除基倒取余法
  • 编写程序 - 进制相互转换.py
    Python编程基础03:变量与数据类型
  • 运行程序,查看结果
    Python编程基础03:变量与数据类型
  • Python2.x有长整型(long),但是Python3.x只有整型(int),整型变量可以存储很大很大的整数。
    Python编程基础03:变量与数据类型

2、浮点型

  • 类型:<class ‘float’>
  • 实例演示
    Python编程基础03:变量与数据类型
  • 浮点型数都是有误差的,不像整数是精确的。在实际应用中,一般会有精确度要求,比如精确到小数点后面几位。
  • 利用Python内置函数round()可以实现精确度要求
    Python编程基础03:变量与数据类型

3、复数型

  • 类型:<class ‘complex’>
  • 实例演示
    Python编程基础03:变量与数据类型

(二)类型转换函数

1、引入类型转换

  • 整型不能与字符串进行加法运算
    Python编程基础03:变量与数据类型
  • 利用str()函数将整数转换成字符串就可以与字符串拼接
    Python编程基础03:变量与数据类型

2、类型转换函数表

函数功能
int(x [, base ])将x转换为一个整数
float(x)将x转换到一个浮点数
complex(real [, imag ])创建一个复数
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
chr(x)将一个整数转换为一个字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
bin(x)将一个整数转换为一个二进制字符串

3、类型转换函数使用示例

  • int()函数
    Python编程基础03:变量与数据类型
  • float()函数
    Python编程基础03:变量与数据类型
  • complex()函数
    Python编程基础03:变量与数据类型
  • str()函数
    Python编程基础03:变量与数据类型
  • repr()函数
    Python编程基础03:变量与数据类型
  • eval()函数
    Python编程基础03:变量与数据类型
  • tuple()函数
    Python编程基础03:变量与数据类型
  • list()函数
    Python编程基础03:变量与数据类型
  • chr()与ord()函数(互为反函数)
    Python编程基础03:变量与数据类型
  • bin()、oct()与hex()函数
    Python编程基础03:变量与数据类型

(三)初试math模块

1、导入math模块

  • 导入math模块,调用其常量与函数
    Python编程基础03:变量与数据类型
  • 查看math模块里的全部函数
    Python编程基础03:变量与数据类型
  • 如此导入math模块,使用其常量或函数,必须加math前缀,否则报错
    Python编程基础03:变量与数据类型

2、导入math模块指定常量或函数

  • 导入math模块里的e, pi, sqrt, pow
    Python编程基础03:变量与数据类型

3、导入math模块全部常量和函数(不建议使用)

  • 使用“*”通配符
    Python编程基础03:变量与数据类型

(四)初试random模块

  • 随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。在Python里,利用random模块提供的函数可以产生随机数。

1、random模块里的函数

函数描述
choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数
randrange ([start, ] stop [, step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
randint(start, stop)从指定范围[a, b]内产生一个随机整数
random()随机生成下一个实数,它在[0,1)范围内
seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed
shuffle(lst)将序列的所有元素随机排序
uniform(x, y)随机生成下一个实数,它在[x, y]范围内
  • choice()函数
    Python编程基础03:变量与数据类型
  • randrange()函数
    Python编程基础03:变量与数据类型
  • randint()函数
    Python编程基础03:变量与数据类型
  • random()函数
    Python编程基础03:变量与数据类型
  • shuffle()函数 - 可用于随机乱序出题
    Python编程基础03:变量与数据类型
  • uniform()函数
    Python编程基础03:变量与数据类型

2、猜数游戏 - 使用随机整数

  • 游戏规则:程序产生一个[1, 100]之间的随机整数,用户输入整数进行猜测,如果猜对了,就会循环你是否要继续玩游戏;如果猜错了,程序会提示你是猜高了还是猜低了,然后让你继续输入整数进行猜测。
  • 编写程序 - 猜数游戏.py
    Python编程基础03:变量与数据类型
# -*- coding: utf-8 -*-
"""
功能:猜数游戏
作者:华卫
日期:2020年11月5日
"""

from random import randint

choice = "yes"

while choice == "yes":
   target = randint(1, 100)
   num = int(input("Try to guess the number I'm thinking of: "))
   while num != target: 
      if num < target:
         num = int(input("Too low! Guess again: "))
      elif num > target:
         num = int(input("Too high! Guess again: "))
   choice = input("That's it! Would you like to play again? (yes/no) ")

print("Thanks for playing!")
  • 运行程序,查看效果
    Python编程基础03:变量与数据类型
匿名

发表评论

匿名网友