python初体验

第一句代码print("hello world")

快速切换项目栏alt+1

快速运行当前文件shift + ctrl + F10

关闭控制台shift + ctrl + F4

 

注释:

单行注释:#(快捷键ctrl+/)

多行注释:"""三双引号 """

 

编程三步骤:

1.获取数据

cny = float(input("请输入人民币:"))

2.逻辑计算

usd = CNY* 0.1398

3.显示结果

print("str(cny)" + "人民币=" + str(usd))

控制台打印:print()

控制台输入:input()  # input函数结果一定是str类型

 

人机交互(程序本质,以机器的视角看问题)

 

python变量

引子:

  程序运行在哪里?==>内存

  程序在处理什么?==>数据  

作用:

  在内存中操作数据

定义:

  关联一个对象的标识符

建议命名:

  字母小写,多个单词以下划线连接(开发python命名习惯)

语法:

  变量名 = 数据

创建变量时,会在内存中开辟一个空间,它有一个地址值

创建数据时,也会在内存中开辟一个空间,它也有一个地址值,开辟的空间存储的是数据

当把数据赋值给变量后,变量开辟的空间存放的是数据的地址值

当把一个变量赋值给另一个变量,传递的是数据的地址值,即被赋值的变量存储的是赋值变量关联数据的地址值

下图中:

name01 = "谢x" # 创建变量

name01 = "韩xx" # 修改变量

name02 = "张xx" # 创建变量

name03 = name02 # 传递的是变量name02关联数据的地址值

 

python数据类型

python语言变量没有类型,但关联的数据有明确的类型

1.str 字符串 存储文本信息,使用双引号修饰

name = "小明"

2.int 整形 存储整数,正数,负数,0

age =  22

3.float 浮点数 存储小数

money = 22.3

4.bool 布尔值 用来条件的结果(python中True和False的首字母要大写,不像js首字母是小写)

True 表示为真(条件满足或成立)

False 表示为假(条件不满足或不成立)

 

python数据转换
转换为字符串 srt()
转换为整形 int()
转换为浮点数 float()
转换为布尔值 bool()

核心思想:

  结果 = 目标类型(待转数据)

当str类型转换为其它类型时,有局限性

  例如str类型2.33不能转换为int类型,只能转换为float类型

python不能像js拿样用+转换其它类型为str类型

  例如js中"你好" + 1会的到字符串"你好1",在python这样写会报错,要写成"你好" + "1"

当int类型转换为float类型,会加上小数点

  例如int类型的3,转换为float类型时,结果为3.0

当float类型转换为int类型,会把小数点后面的数值去掉

  例如float类型的3.456转换为int类型时,结果是3

 

python算数运算符

  产生新数据

1. + 加号

2. - 减号

3. * 乘号

4. / 除号(小数商,结果会有小数点,整除也有例如6/3结果是2.0)

5. // 整除号(整数商,结果为整数)

6. % 取余(余数)

// 整除和 % 余数可以活用在求时间,如几分零几秒,购买商品中,总金额能购买几件同一商品,找回多少钱

在java中没有 // 整除号,如果5和2都是int类型,用 / 除结果是2,如果5和2是有一个是float或者double类型用 / 除结果是2.5

js也没有 // 整除号

 

 

python增强运算符

  在算术运算符基础上,增加对自身赋值的功能

1.y += x 相当于 y = y + x

2,y -= x 相当于 y = y -  x

3.y *= x 相当于y = y * x

4.y /= x 相当于y = y / x

5.y //= x 相当于y = y // x

6.y %= x 相当于y = y % x

  例:

    data01 = 5

    # data01 + 2 # 产生的数据7没有赋值给变量,所以直接被销毁

    # data01 = data01 + 2 # 先相加再赋值 

    # data01 += 2 # 累加 相当于上一行的写法

 

python比较运算符(返回的是布尔类型的值)

< 小于

<= 小于等于

> 大于

>= 大于等于

== 等于

!= 不等于

在python中判断变量大于且小于可以这样写

36.5 < 变量 < 37.2(编程语言中只有python可以这样写,java和技术都不可以)

 

选择语句:让程序根据条件有选择性的执行

if elif else 语句(要注意不要忘记冒号:,python语句不同于java与js代码用大括号{}包裹,代码的层级是看缩进的代码的缩进一定要注意)

  语法:

    if 条件1: # 注意要有冒号

      语句块1

    elif 条件2: # 注意要有冒号

      语句块2

    else: # 注意要有冒号

      语句块3

  说明:

    elif子句可以有0个或多个

    else子句可以有0个或1个,且只能放在if语句的最后

 

pycharm程序的调试

  调试:让程序中断,审查程序执行过程与变量取值

    1.加断点(在可能出错的行,行号的右边,代码的左边点击加断点)

    2.开始调试 运行(run) ==> 调试(debug)

    3.程序到断点后中断,可以按f8逐行运行(此时在编译器的下方,调试器(debug)能查看变量的值和变量的类型)

 

循环语句:可以让一段代码满足条件,重复执行

while True: # 注意要有冒号

  满足条件执行的语句

  if 退出条件: # 注意要有冒号

    break # 用break跳出循环,循环体内后续的代码不在执行  

while 条件: # 注意要有冒号

  满足条件执行的语句

 

for  语句

  作用:

    用来遍历可迭代对象的数据元素

    可迭代对象是指能依次获取数据元素的对象

  语法:

    for 变量 in 可迭代对象: # 注意要有冒号

      循环体

 

随机数 random

  引入

    import random

  使用

    random.randint(1,100) #获取1到100的整型的随机数

 

列表 list

  作用:存储单一维度数据

创建:列表名 = [数据1,数据2,,,,]

  list_name = [“小红”,"小蓝",“小橙”]

添加:列表名.append(数据)

  list_name.append(“小绿”)

定位:列表名[索引] # 索引从0开始算,列表中第一个数据的索引是0

  读取

    list_name[1] # 取到的数据是小蓝

  修改

    list_name[2] = “小黑” # 小橙被修改为小黑

删除

  del 列表名[索引] # del是python中的关键字

遍历(根据条件读取每个元素)

  for 变量(通常用item表示) in 列表名:

    变量item存储的是列表中的元素

  for item in list_name:

    print(item) # 会依次打印 “小红”,"小蓝",“小黑”,“小绿”

 

列表 list存储机制

一开始list_name存储的是列表的地址值

将list_name赋值给data01,data01存储的也是列表的地址值

将list_name[0]赋值给data02,data02存储的是"X红志"的地址值

当data02被赋值为"红志",data02存储的是"红志"的地址值

将"红民"赋值给data01[1],data01[1]即列表list[1]存储的是"红民"的地址值

 

list_name存储的是列表的地址值

将list_name赋值给list_new,list_new存储的是列表的地址值

将list_name[1]赋值给tmz,tmz存储的是"铁木真"的地址值

将"星期五"赋值给list_name[0],此时列表list_name[0]存储的是"星期五"地址值

tmz与"餐厅"累加后,tmz存储的是"铁木真餐厅"的地址值

 

 

 

 python语言数据类型

  可变数据:列表

  存储机制:预留空间

  不可变数据:字符串,整数,小数,布尔

  存储机制:按需分配

  因为内存很宝贵,对每一块空间都利用的满满当当,数据存储没有预留空间,要改变只能在新的位置开一个空间存储修改后的数据,不能在原来的存储位置直接扩展,因为没有预留位置,周围已经没有空间扩容了.

 

python列表list添加append和删除del内存原理

列表list_name中python是可变数据类型再内存中有预留空间

list_name进行append("谢X")时,将添加数据"谢X"的地址值,存放在列表list_name的最后面

当用del list_name[1]将list_name[1]原本存储"韩XX"的地址值删除后,列表list_name后面的存储的地址值都会往前移动,即"谢X"的地址值会存储在原来存放"韩XX"地址值的位置

 

 

list_name存储的是列表地址值

将list_name赋值给list_new,此时list_new存储的是列表地址值

列表list_name中python是可变数据类型再内存中有预留空间

list_name进行append("海底捞")时,将添加数据"海底捞"的地址值,存放在列表list_name的最后面

当用del list_name[0]将list_name[0]原本存储"星期五餐厅"的数据地址值删除后,列表list_name后面的存储的地址值都会往前移动,即"铁木真"的地址值会存储在原来存放"星期五餐厅"地址值的位置

 

 python列表list for in 循环内存原理

list_name存储的是列表的地址值

for in循环中item存储的依次是"王XX"地址值,"XX"地址值,"韩XX"地址值,"XX"地址值,"谢X"地址值"XX"地址值

 

list_name存储的是列表的地址值

在下图for in循环中

list_name[0]开始存储的是"王XX"的地址值,接着存储的是"王XX同学"的地址值

list_name[1]开始存储的是"韩XX"的地址值,接着存储的是"韩XX同学"的地址值

list_name[2]开始存储的是"谢X"的地址值,接着存储的是"谢X同学"的地址值

 

 

 

python字典dict

  字典dict

    存储多个维度数

# 1. 创建
# 字典名 = {键1:值,键2:值}
dict_xw = {"name": "小王", "sex": "", "age": 26}

# 2. 添加
# 字典名[键] = 值
dict_xw["money"] = 1000
print(dict_xw) #  {"name": "小王", "sex": "男", "age": 26, "money",1000}

# 3. 定位
# --修改
# 字典名[键] = 值
dict_xw["sex"] = ""
print(dict_xw) #  {"name": "小王", "sex": "女", "age": 26, "money",1000}

# --读取
# 值 = 字典名[键]
print(dict_xw["name"]) # 小王
print(dict_xw["age"]) # 26

# 4. 删除
del dict_xw["sex"] 
print(dict_xw) #  {"name": "小王", "age": 26, "money",1000}


# 5. 遍历
# -- 根据值查找键
for key in dict_xw:
    if dict_xw[key] == 26:
        print(key) # key为字典的键

 内存原理

  变量保存的是list_user的地址值,list_user保存的是字典dict的地址值

 

 

 

思维导图

 

 

 

posted @ 2022-11-23 20:57  跃动指尖  阅读(73)  评论(0)    收藏  举报