python基础笔记一

计算机基础结构

硬件

1944年,美籍匈牙利数学家冯·诺依曼提出计算机基本结构。
五大组成部分:运算器、控制器、存储器、输入设备、输出设备。
-- 运算器:按照程序中的指令,对数据进行加工处理。

-- 控制器:根据程序需求,指挥计算机的各个部件协调工作。
通常将运算器和控制器集成在中央处理器(CPU)中。

-- 存储器:保存各类程序的数据信息。
		内存RAM -- 容量小,速度快,临时存储数据 
		硬盘HDD -- 容量大,速度慢,永久存储数据

输入设备:外界向计算机传送信息的装置。
		例如:鼠标、键盘、扫描仪…
输出设备:计算机向外界传送信息的装置。	
		例如:显示器、音响、打印机…

软件

操作系统:

	-- 管理和控制计算机软件与硬件资源的程序。
	
	-- 隔离不同硬件的差异~~,使软件开发简单化。
	
	-- Windows,Linux,Unix。

应用软件:为了某种特定的用途而被开发的软件。

软件:程序 + 文档。

-- 程序是一组计算机能识别和执行的指令集合。
	
-- 文档是为了便于了解程序所需的说明性资料。

Python 简介

Python 定义

是一个免费、开源、跨平台、动态、面向对象的编程语言。

# Python程序的执行方式

交互式

在命令行输入指令,回车即可得到结果。

1.打开终端

2.进入交互式:python3

3.编写代码:print(“hello world”) 

4.离开交互式:exit()

文件式

将指令编写到.py文件,可以重复运行程序。

1.编写文件。

2.打开终端

3.进入程序所在目录:cd 目录

4.执行程序: python3 文件名

Linux常用命令

1.pwd:查看当前工作目录的路径 

2.ls:查看指定目录的内容或文件信息 

3.cd:改变工作目录(进入到某个目录)

练习:

1.在指定目录创建python文件.

    --目录:/home/tarena/month01

    --文件名:exercise01.py

2. 在文件中写入:print(“你好,世界!”)

3. 运行python程序

执行过程

计算机只能识别机器码(1010),不能识别源代码(python)。

1.由源代码转变成机器码的过程分成两类:编译和解释。

2.编译:在程序运行之前,通过编译器将源代码变成机器码,例如:C语言。

    -- 优点:运行速度快
    -- 缺点:开发效率低,不能跨平台。

3.解释:在程序运行之时,通过解释器对程序逐行翻译,然后执行。例如Javascript

    -- 优点:开发效率高,可以跨平台;
    -- 缺点:运行速度慢。
    
4.python是解释型语言,但为了提高运行速度,使用了一种编译的方法。编译之后得到pyc文件,存储了字节码(特定于Python的表现形式,不是机器码)。

        源代码 -- 编译 --> 字节码 -- 解释 --> 机器码
            |————1次———|

解释器类型

1.CPython(C语言开发)

2.Jython (java开发)

3.IronPython (.net开发)

数据基本运算

基础知识

pycharm常用快捷键

1.移动到本行开头:home键

2.移动到本行末尾:end键盘

3.注释代码:ctrl + /

4.复制行:ctrl +d

5.选择列:shift + alt + 鼠标左键

6.移动行:shift + alt + 上下箭头

7.智能提示:ctrl + space

8.代码格式化:ctrl+alt+l

注释

给人看的,通常是对代码的描述信息。

1.单行注释:以#号开头。
# print("x")
2.多行注释:三引号开头,三引号结尾。
"""
汇率转换器  exercise01.py
"""

函数

表示一个功能,函数定义者是提供功能的人,函数调用者是使用功能的人。
例如:
1.print(数据) 作用:将括号中的内容显示在控制台中
2.变量 = input(“需要显示的内容”) 作用:将用户输入的内容赋值给变量
"""
    函数:功能
        语法:
            函数名(参数)
"""

# 1. 字面意思:打印(输出/显示)
# 2. 作用:将括号中的内容显示在终端中
# 3. 适用性:显示结果
# print("结果")

# 1. 字面意思:输入
# 2. 作用:将终端中录入的信息输入到程序中
# 3. 适用性:获取数据
# result = input("提示信息")
name = input("请输入姓名:")
print("你好:" + name)
"""
    练习1:收银台
        获取商品价格
        获取购买数量
        获取支付金额
        显示:应该找回?元.
        算法:支付金额 - 价格 × 数量
"""

commodity_price = input("请输入商品价格:")
buy_count = input("请输入购买数量:")
money = input("请输入金额:")

result = float(money) - float(commodity_price) * int(buy_count)

print("应该找回" + str(result) + "元.")

变量

1.定义:关联一个对象的标识符。
2.命名:必须是字母或下划线开头,后跟字母、数字、下划线。
             不能使用关键字(蓝色),否则发生语法错误:SyntaxError: invalid syntax。
3.建议命名:字母小写,多个单词以下划线隔开。
          class_name
4.赋值:创建一个变量或改变一个变量关联的数据。
5.语法:变量名 = 数据
          变量名1 = 变量名2 = 数据
          变量名1, 变量名2, = 数据1, 数据2
"""
    变量
        程序运行在哪里?  -->  内存
        程序在处理什么?  -->  数据
        核心价值:在内存中操作数据
        语法:
            名称 = 数据
            名称1,名称2 = 数据1, 数据2
            名称1 = 名称2 = 数据1
    练习:exercise01
"""
#  赋值号=  : 将右边给到左边
score = 100

score1, score2 = 95, 96

name1 = name2 = "悟空"  
"""
    画出下列代码内存图:
"""
data01 = "苏大强"
data02 = data01
data01 = "大强"
print(data02)# ? 

del 语句

1.语法: 
del 变量名1, 变量名2
2.作用:
用于删除变量,同时解除与对象的关联.如果可能则释放对象。
3.自动化内存管理的引用计数:
每个对象记录被变量绑定(引用)的数量,当为0时被销毁。
"""
    del
    引用计数
    练习:exercise02
"""
data01 = 500
data02 = data01
data03 = data02
"""
    画出下列代码内存图
"""

name02 = name01 = "八戒"
name03 = name02
del name01
name03 = name02 = "悟空"

核心数据类型

1.在python中变量没有类型,但关联的对象有类型。
2.通过type函数可查看。

空值对象 None

1.表示不存在的特殊对象。
2.作用:占位和解除与对象的关联。
# 1. 空None类型
# -- 占位
name = None
# -- 解除与对象的关联
score = 100
score = None

整形int

1.表示整数,包含正数、负数、0。
如: -5, 100, 0
2.字面值:
十进制:5 
二进制:0b开头,后跟1或者1
八进制:0o开头,后跟0~7
十六进制:0x开头,后跟0~9,A~F,a~f
# 2. 整形(整数)int类型
# -- 十进制:逢十进一 0 1 2 3 4 ..9  进位 10
data01 = 10
# -- 二进制:逢二进一 0 1 进位 10  11   100   101   110
data02 = 0b10
# -- 八进制:逢八进一 0 1 2 ...7 进位 10  11
data03 = 0o10
# -- 十六进制:逢十六进一 0 1 2 ...9  a(10)..f(15) 进位 10   11 ..
data04 = 0x10

浮点型float

1.表示小数,包含正数、负数,0.0)。
2.字面值:
小数:1.0   2.5
科学计数法:e/E (正负号) 指数 
       		1.23e-2 (等同于0.0123)
       	1.23456e5(等同于123456.0)
# 3. 浮点型(小数)float类型
number01 =1.5
print(number01)
number02 =15e-1
number03 = 0.00000000001# 1e-11
print(number03)

字符串str

是用来记录文本信息(文字信息)。
字面值:双引号
"""
    字符串
    练习:exercise05
"""

# 1. 不可变
name = "悟空"
name = "孙悟空"
print(name)  # 创建新字符串对象(孙悟空),替换变量存储的地址。
# 假设可以在原有基础上进行扩充,很可能破坏其他对象内存空间.

# 2. 编码相关函数
# 字 -->  数
print(ord("天"))

# 数 --> 字
print(chr(22825))
# 4. 字符串str类型
message = "我爱编程"
message = "1.5"
"""
    古代的秤,一斤十六量.
    获取两,显示几斤零几两.
"""
weight_liang = int(input("请输入两:"))
jin = weight_liang // 16
liang = weight_liang % 16
print(str(jin) + "斤零" + str(liang) + "两")

布尔bool

用来表示真和假的类型
True 表示真(条件满足或成立),本质是1
False 表示假(条件不满足或不成立),本质是0
# 1. 布尔 bool 类型
# 命题:带有判断性质的陈述句
#      我是一个帅哥
#      真/对/成立    True
#      假/错/不成立  False

# 类型转换: bool(数据)  有值true  没值false

print(bool(0))  # False
print(bool(0.0))  # False
print(bool(""))  # False
print(bool(None))  # False

数据类型转换

1.转换为整形: int(数据)
2.转换为浮点型:float(数据)
3.转换为字符串:str(数据)
4.转换为布尔:bool(数据)
      		结果为False:bool(0)  bool(0.0)  bool(None)  
5.混合类型自动升级:
  1 + 2.14  返回的结果是 3.14
  1 + 3.0   返回结果是:  4.0
"""
    类型转换
        语法逻辑:
            结果 = 类型名(待转类型)
"""

# input函数的结果是str类型

# str ---> int / float
# 适用性:需要对象字符串进行数学运算
# 注意:待转数据必须"像"转换的类型.
number = float("200.5")
print(number)

# int / float ---> str
# 适用性:需要按照某种格式显示计算后的数值
print(str(10.5))

运算符

算术运算符

+	加法
-	减法
*	乘法
/	除法:结果为浮点数
//	地板除:除的结果去掉小数部分
%	求余
**	幂运算
优先级从高到低: ()
          		 **
                 *  / % //
                 +  -
"""
    公式:
        距离 =初速度 * 时间的一半 + 加速度 × 时间的平方
    已知:
        距离,时间,初速度
    计算:
        加速度

    加速度 = (距离 - 初速度 * 时间 / 2) / 时间**2
"""
s = float(input("请输入距离:"))
t = float(input("请输入时间:"))
v0 = float(input("请输入初速度:"))
a = (s - v0 * t / 2) / t ** 2
print(a)

"""
    练习:时间换算
        获取分钟数
        获取小时数
        获取天数
        显示:?天?小时?分钟总共是?秒.
"""
minute = input("请输入分钟数:")
hour = input("请输入小时数:")
day = input("请输入天数:")
result = int(minute) * 60 + int(hour) * 60 * 60 + int(day) * 24 * 60 * 60
print(day + "天" + hour + "小时" + minute + "分钟总共是" + str(result) + "秒.")
# 1. + - *  / //  %   幂运算**
number01 = 5
number02 = 2
result = number01 + number02  # 7
print(result)

print(number01 ** 2)  # 5 的2 次方: 5 * 5

number01 = "5"
number02 = "2"
result = number01 + number02  # 不是数学运算,而是文字拼接52
print(result)

# 需求1:整数的个位数是多少?  --> 余数
number = 56
print(number % 10)  # 6

# 需求2:70秒是几分钟零几秒? --> 地板除(整数除)
second = 70
print(second // 60)  # 分钟
print(second % 60)  # 秒

增强运算符

y += x		等同于 y = y + x
y -= x		等同于 y = y - x
y *= x		等同于 y = y * x
y /= x		等同于 y = y / x
y //= x		等同于 y = y // x
y %= x		等同于 y = y % x
y **= x		等同于 y = y ** x
"""
    获取一个4位整数           1234
    输出每位相加和            1+2+3+4
"""
# # 方法1
# number = int(input("请输入整数:"))
# # 个位
# unit01 = number % 10
# # 十位 1234 --> 123  --> 3
# unit02 = number // 10 % 10
# # 百位 1234 --> 12  --> 2
# unit03 = number // 100 % 10
# # 千位  1234 --> 1
# unit04 = number // 1000
# print(unit01 + unit02 + unit03 + unit04)

# 方法2
number = int(input("请输入整数:"))
# 个位
result = number % 10
# 十位
result += number // 10 % 10
# 百位
result += number // 100 % 10
# 千位  1234 --> 1
result += number // 1000
print(result)
# 2. 增强运算符 += -=  *=   /=   //=  %=  **=
# data01 = 6
# 运算后的结果,不影响变量自身
# print(data01 + 1)# 7
# print(data01)# ? 6

data01 = 6
# 运算后的结果,又赋值给了变量自身.
data01 += 1 # data01 = data01 + 1
print(data01)# 7

比较运算符

 <		小于
 <=		小于等于
 >		大于
 >=		大于等于
 ==		等于
 !=		不等于
返回布尔类型的值
比较运算的数学表示方式:0 <= x <= 100
# 2. >  <   >=   <=  等于==  不等于!=
#  比较数值大小,结果是bool类型
data01 = 50
data02 = "50"
print(data01 == data02)  # false
print(50 != "50")  # false

逻辑运算符

与and

表示并且的关系,一假俱假。         
示例:
    True and True	# True
    True and False	# False
    False and True	# False
False and False	# False
# 3. 与and   或    非
# 判断多个命题关系

# 与and 现象:一假俱假  并且关系(必须满足所有条件)
print(True and True)  # True
print(False and True)  # False
print(True and False)  # False
print(False and False)  # False

或or

表示或者的关系,一真俱真     
  示例:
True or True		# True
True or False		# True
False or True		# True
False or False		# False 
# 或or 现象:一真俱真  或者关系(满足一个就行)
print(True or True)  # True
print(False or True)  # True
print(True or False)  # True
print(False or False)  # False

非 not

表示取反
例如:
not True   # 返回False
not False  # 返回True
# 非  取反
print(not True)  # False

短路运算

一但结果确定,后面的语句将不再执行。
"""
    短路逻辑
        一但结果确定,后面的语句将不再执行。
        价值:尽量将耗时的判断放在后面
"""

# False  and ?
result = 1 > 2 and input("请输入") == "a"


# True  or ?
result = 1 < 2 or input("请输入") == "a"
# 终端中是否有"请输入"
"""
    获取一个年份
    如果是闰年输入True,否则输出false
    条件:
        1. 年份能被4整除但是不能被100整除
        2. 年份能被400整除
"""
year = int(input("请输入年份:"))
result = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(result)

身份运算符

语法:
		x is y
		x is not y
作用:
is 用于判断两个对象是否是同一个对象,是时返回True,否则返回False。
   		is not 的作用与is相反
"""
    身份运算符
"""
list01 = [100]
list02 = [100]

# 两个变量指向的对象是否同一个
print(list01 is list02)# False

list03 = lis
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值