"""
第一章 python入门
一. 变量和常量
1. 变量
(1)定义
定义:使用指定的名称来绑定特定的值
格式:变量名 = 变量值
# 注意计算机中的=号代表赋值。意味着把变量值赋给变量名, 将变量名绑定到变量值。
python中变量的赋值可以看成————变量值贴变量名的标签。
"""
# print("hello world")
# print(60+89+90)
# a = "hello world"
# print(a)
# b=1
# print(b)
# 当变量名绑定变量值,计算机python解释器做了什么事情?
"""
①. 在内存中创建一片内存存变量值
②. 在内存中创建一片内存存变量名
③. 将变量名绑定到 变量值
"""
例如:a=123
# 同时为多个变量进行赋值
# b=11
# c=11
# 在python中基本类型(数值、字符串、字节)都是基于内存的管理。
# b="abc"
# print(b)
# 简化
# b=c=1
# 理解的含义:变量名不能绑定变量名 ,只能绑定该变量名指向的对象。
# 当同一个变量名绑定多个变量值,只能先跟原来的变量值进行解绑,然后再重新绑定新的变量值。
"""
当使用变量名第一次绑定变量值的时候----定义
当使用已存在的变量名绑定其他变量值的时候----修改变量绑定
"""
# (2)变量名的规范
"""
①使用字母、数字、_的组合,但是不能使用数字开头
中文名可以当成变量名,但是尽量不要这样用
中国="胜利"
print(中国)
②变量在使用之前必须要先赋值,因为赋值之后变量才能在内存中被创建
a=1
print(a)
③python的变量定义时可以指向任何的类型(可以是整型,浮点型,布尔型,复数以及字符串),因为python是鸭子类型的语言
"""
b=1
b="abc"
print(b)
# (3)对于变量赋值的深刻理解
# x="abc"
# y=x
# x=123
# print(y)
# 练习:交换两个变量的值
x=1
y=2
# 交换
# temp=x
# x=y
# y=temp
# python中存在平行赋值可以简化交换的过程
x,y=y,x
# a,b=1,2
print("x=",x)
print("y=",y)
"""
第一章
二、注释
# 单行注释:从#的位置开始,到该行的末尾,都是被注释的内容
# 注释:被注释掉的内容,python解释器是不解析
按照惯例,习惯将注释的内容放在代码上方
"""
# 功能的注释
a=1
print(a)
"""
第一章 python入门
三、输入输出
1. 输出
语法 print(输出的内容)
"""
# 属于内建(内置)函数
# print(1)
# print("hello")
# 输出多个元素,可以使用,分隔
# print("hello","world")
# \n 换行符
# end=作为默认的结束标志,默认\n
# print("abc",end="")
# print("edf")
# 2.输入
# input 等待键盘输入
# name=input()
# print("刚刚输入的name值=",name)
# print("input之后执行的代码")
# 小游戏
# 猜数字
realvalue=8
print("游戏开始")
# guess=input("请输入猜测的数字")
# guess=int(input("请输入猜测的数字"))
# "8" 8
# ==代表判断内容是否一致
# if else 语句体,要注意缩进
# int()能够将字符串转换成数值
# if guess==realvalue:
# print("猜对了")
# print("猜对了也没有奖励")
# else:
# print("猜错了")
# print("小笨蛋")
"""
第二章 数据类型(数值类型 布尔类型)
python可以分为:
1.数值类型:整数、浮点数、复数
2.布尔类型
3.序列类型
4.映射类型
5.集合类型
"""
"""
数值类型
1. 整数 int
2 3 50 -6
(1)定义的方式:使用变量名绑定整数值
"""
x=1
# type(对象) 返回值:当前对象所属的类
print(type(x))
#(2) 整数的边界
y=-9999999999999999999999999
print(y)
#(3) 四种进制
# N进制就是逢N进1
"""
二进制
八进制
十进制
十六进制
"""
# 二进制:需要使用前缀0b或者0B
# 八进制:需要使用前缀0o或者0O
# 十进制:定义的时候默认十进制
# 十六进制:需要使用前缀0x或者0X 0-9按照十进制的数字,10-15按照a或者A---f或F
x=0b1
# y=0b111102
z=0o1234567
y=1000101010
x=0X12456789AF
"""
十 二 八 十六
0 0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101
6 110
7 111 7
8 1000 10 8
9 1001 9
10 1010 A或者a
11 B或者b
12 C
15 F
16 10
"""
# 进制之间转换
#(1)其他进制转成十进制:乘幂法 Python中用**表示乘幂
# 底数:原数的进制
# 幂:当前的位数-1
# 0b101010二进制 变成十进制
#123=100+20+3=1*10^2+2*10^1+3*10^0
#二进制:101010=1*2^5+0*2^4+1*2^3+1*2^1=42
#八进制:101010=1*8^5+0*8^4+1*8^3+1*8^1=...
#十六进制:1a2b=1*16^3+10*16^2+2*16^1+11*16^0
#(2)十进制转换成其他进制:下除法
# 被除数:当前的数
# 除数:要转换成的进制
# 结果是:取所有的余数 从下到上的方向
# 练习:
# 1. 1000这个数,
# 如果是二进制,那么它对应的十进制是多少?
print(1*(2**3))
# 如果是八进制,则对应的十进制是多少?
print(1*(8**3))
# 如果是十六进制,那么对应的十进制是多少?
print(1*(16**3))
# 2.二进制数10111010,将它转换成十进制
print(1*2**7+1*2**5+1*2**4+1*2**3+1*2)
# 3. 888十进制数,将它转换成二进制,转换成八进制 ,转换成十六进制?
# 下除法
# 使用python的内部方法进行进制之间的转换
# bin()将其他进制转换成二进制
print(bin(888))
print(bin(0x888))
# oct()将其他进制转换成八进制
print(oct(888))
print(oct(0x888))
# int()将其他进制变成十进制
print(int(0b1000))
print(int(0o1000))
print(int(0x1000))
# int(): 能够将字符串转换成数字,还能将其他进制转换成十进制
#hex(): 能够将其他进制转换成十六进制
print(hex(888))
print(hex(0x888))
# 练习
#1. 26作为十进制,对应的十六进制是多少。
print(hex(26))
#2. 计算二进制的1001和十六进制101相加。
# 101
print(1*16**2+1*16**0)
# 二进制100000001
# 1001
# 100001010
print(bin(int(0b1001)+int(0x101)))
# 2.布尔类型 bool
# 只有两个值 True False(一定要注意大小写)
# 布尔类型其实是整型的子类型
#True---1
#False--0
# 实际的开发中不建议这样做
print(True+5)
# 意义 判断某个条件的关系
print(3>5)
# 定义布尔类型,变量绑定
t=True
f=False
print(type(t),type(f))
# 3.浮点类型 float
# 小数,python中只支持十进制的浮点类型
# 浮点类型的定义,变量名绑定变量值
f=0.25
print(type(f))
# 支持科学计数法
print(1.2e8)
print(1.2e-8)
# 浮点类型有不精确性
# 只能做到近似存储
print(10/3)
print(0.1+0.2)
# 4. 复数类型 complex
# 复数由实部和虚部1+2i
#python中的虚部使用j
x=1+2j
print(type(x))
# 实部和虚部都是浮点类型
print(x.real)
print(x.imag)
# 5. 四种类型之间的转换
# 整数 浮点 复数 布尔
i=0
f=0.0
c=2+5j
b=True
#(1) int(value): 将对象value转换成整数类型,value如果不写,默认返回0
print(int())
print(int(f)) #浮点类型转换成整型,直接取整(向0取整)
# print(int(c)) # 复数类型不能转换成整型
print(int(b)) # True对应1 False对应0
# float(value):将对象value转换成浮点类型
print(float())# value如果不写,默认输出0.0
print(float(i))
# print(float(c)) # 复数类型不能转换成float
print(float(b))
# complex(value):将对象value转换成复数类型
print(complex()) # value如果不写,默认输出0j
print(complex(i))
print(complex(f))
print(complex(b))
# bool(value):将value对象转换成布尔类型
# 可以将任何类型转换成bool类型
print(bool(i)) # 整数只要不是0,则转换成True
print(bool(f)) # 浮点只要不是0.0,则都转换成True
print(bool(c)) # 复数只要不是0j,则都转换成True
#两种类型做运算,运算结果取高级别的类型
# 整型 < 浮点 < 复数
a=5
b=0.1
c=1+5j
print(type(a+b))
print(type(a+c))
print(0.1)
课后作业:
1.数值类型分为哪些?
2.计算二进制数1001和二进制101手工计算,程序验证
3.将十进制的17转换成2进制,8进制和16进制,使用手工计算,并使用数值的方法验证。
4.将二进制100110101转换成10进制,8进制和16进制,使用手工计算,并使用数值方法验证。
5.输入a,b,c,d 4个整数,计算a+b-c*d的结果,输出。
6.定义变量a="123" b="456" c="789", 现将d绑定到a,a绑定到b,b绑定到c。输出abcd四个值,画出内存图变化。