Python入门、环境搭建、变量、数据类型

news2025/7/12 15:04:22

目录

前景

官方下载

基本数据类型

动态语言的体现

静态语言的体现

 弱语言的体现

强语言的体现  

注释

整数

 浮点型

 浮点型计算方案

 字符串

布尔 

引用数据类型

列表 [ ]

列表方法

集合Set{}

基本方法

 特殊需求方法

 应用场景

字典{}

常见操作

元组

操作符

练习


前景

 1989年圣诞节期间,荷兰人吉多范罗苏姆为了打发无趣的圣诞节而创造了Python,但Python的真正诞生是在1991年。Python的名字取自英国20世纪70年代首播的电视喜剧《蒙提派森的飞行马戏团》。现在已经更新到Python 3.0版本了。

1. Python是一门跨平台的计算机编程语言。        

(即Python可以在Windows、评估操作系统中进行运行)

2. Python中是一种解释型语言,开发过程中是没有编译这个环节,与Java不一样。

3. Python是一种交互是语言,可以在>>>后直接执行代码。

(即可以在本机当中直接搜索Python,打开Python 3.9,在>>>后面就可以直接写代码啦)

官方下载

Python环境安装包下载

https://www.python.org/
https://www.python.org/downloads/windows/

Python开发工具PyCharm下载

https://www.jetbrains.com.cn/en-us/
https://www.jetbrains.com.cn/en-us/pycharm/

插件安装

#软件汉化
Chinese (Simplified) Language Pack/中文语音包
#英文翻译
Translation


 

基本数据类型

Python是面向对象语言,万物皆对象。Python是一门动态的(dynamic)且强类型(strong)语言

动态语言的体现

#JavaScript	以下代码不会报错,数据类型可以变化
let a = 1;
a = "abc";

静态语言的体现

#java	以下代码会报错,数据类型不能变化
int a = 1;
a = "abc";

 弱语言的体现

#JavaScript 以下代码不会报错,数据类型可以进行计算
<script type="text/javascript">
	function abc(){
		let a = "1" * 2;
		alert(a);
	}
</script>

<body>
	<button type="button" onclick="abc()">测试</button>
</body>

强语言的体现  

#计算字符串叠加效果
print("1")
print("1"*2)
print(1*2)
print('1'*3)

java八大基本数据类型                                  Python四大基本数据类型

#数字类型
byte/short/int/long                     整数 int int
#浮点型                                
float/double                            浮点型 double float
#文本
char                                    字符串 string string
#布尔类型
boolean                                 布尔 boolean bool

注释

# 单行注释    Ctrl + Alt + L 代码格式化
"""
多行注释
"""

'''
多行注释
'''

整数

# 整数 int int
a1 = 1000   # 十进制
a2 = 0x1000  # 16进制
a3 = 0o1000  # 8进制
a4 = 0b1000  # 2进制
print(a1)
print(a2)
print(a3)
print(a4)

 浮点型

 # 浮点型 double float
f1 = 0.6
f2 = 0.2
print(f1 - f2)
d1 = decimal.Decimal(0.6)
d2 = decimal.Decimal(0.2)
print(d1-d2)
d1 = decimal.Decimal('0.6')
d2 = decimal.Decimal('0.2')
print(d1-d2)

 浮点型计算方案

#问题
所有和小数相关的运算全部是不准确的
#java中避免精度不准确
1.所有的货币单位全部下调
       1毛:     0.1元    10分     100厘
2.使用对应的类型 BigDecimal -> Decimal
3.数据库使用decimal(9,2)

 字符串

# 字符串 string string
name = "hello world"
print(name)
name = "hello 'world'"
print(name)
name = "hello \"wor\"ld"
print(name)
name = "hello \t world"
print(name)
name = "hello \n world"
print(name)
name = 'hello world'
print(name)

布尔 

# 布尔 boolean bool
b1 = True
b2 = False
print(b1,b2)
# python中为false的情况
#   0 , '' , [], {}, () , None , False
print(1 and 2 and 3 and 4)
print(1 and 2 and 0 and 4)
print(1 and 2 and '' and 4)
print(1 and 2 and [] and 4)
print(1 and 2 and None and 4)
print(1 and 2 and False and 4)
print(1 and 2 and {} and 4)
print(1 and 2 and () and 4)
print(1 and 2 and 'axs' and 4)

引用数据类型

类型                     java                        Python

列表                   ArrayList                 list
集合                    set                          set
字典                    map                        dict
数组                   Array                        tuple

列表 [ ]

列表方法

# 添加内容  stack栈: push放   pop拿
# 列表的定义,有值无值的分别定义方式
# pop 拿元素(删除元素)
# extend 追加
# copy 复制新的引用
# append 追加
# l1.sort() 排序
# l1.sort(reverse=True) 倒序
# remove 删除某个元素
# insert 插入
# clear 清空
# l1[开始:结束:步长]

# 列表 ArrayList -> list
l1 = list()
l1 = []
l1 = [1, 3, 4, 2, 5]
print(type(l1))

# 添加内容  stack栈: push放   pop拿
# pop 拿元素(删除元素)
print(l1.pop())
print(l1)

# extend 追加
l1.extend([9,8])
print(l1)

# copy 复制新的引用
l2 = l1.copy()
l3 = l2
print(l2)

# append 追加
l2.append({7,6})
print(l1)
print(l2)
print(l3)

# l1.sort() 排序
# l1.sort(reverse=True) 倒序
l1.sort()
print(l1)
l1.sort(reverse=True)
print(l1)

# remove 删除某个元素
l1.remove(8)
print(l1)

# insert 插入
l1.insert(1,33)
print(l1)

# 反转数组中的元素
l1.reverse()
print(l1)
l1.reverse()
print(l1)

# 查找字符出现的次数
l1.append(4)
print(l1.count(4))
print(len(l1))

# clear 清空
l1.clear()
print(l1)

print('========================================')
# 切片
l1 = [1, 2, 3, 4, 5, 6, 7]
# 拿到 【2, 3, 4】
print(l1[1:4])
# 删掉【2, 3, 4】
l1[1:4] = []  # 1,5,6,7
print(l1)
# 添加 【2, 3, 4】
l1[1:1] = [2, 3, 4]
print(l1)

# l1[开始:结束:步长]
print(l1[-1::-1])
print(l1[::2])

集合Set{}

基本方法

# 集合 Set -> set
# 元素唯一且无序
# 如果是新建空的set集合 需要使用set()
s1 = {}
print(type(s1))
s1 = set()  # s1={}方法建出来的是一个dict对象
print(type(s1))
s1 = {1, 2, 3, 4, 5, 6, 1, 1, 1}
print(type(s1))

'''增删改查'''
# s1.clear()
# s1.copy()
# s1.remove()
# s1.pop()
# s1.add()

 

 特殊需求方法

s1 = {1, 2, 3}
s2 = {3, 4, 5}

# s1.difference(s2) 取差集
s3 = s1.difference(s2)
print(s1)
print(s2)
print(s3)


# s1.discard()  删除元素
print(s1.discard(4))  # 删除不报错
print(s1)
# print(s1.remove(4)) #删除报错
print(s1)

# s1.intersection() 取交集
s3 = s1.intersection(s2)
print(s1)
print(s2)
print(s3)

print('=================')
m1 = {1, 2, 3}
m2 = {3, 4, 5}

# 并集
print(m1 | m2)
# 交集
print(m1 & m2)
# 差集
print(m1 - m2)
# 平均差集
print(m1 ^ m2)

# 再xx里面是否存在
print(1 in m2)
print(1 not in m2)

 应用场景

1.公司抽奖
2.黑名单用户取差集

# 抽奖
users = {'zs', 'ls', 'ww', 'zl', 'tq'}
print(users.pop())
# 黑名单去重
black = {'ls', 'zl'}
print(users - black)

字典{}

常见操作

person = {
    "name": "root",
    "pwd": "123"
}
# 拿值
print(person['name'])
# 改值
person['pwd'] = 123
# 给一个新的值
person['age'] = 456
print(person)
person[1] = 'aa'
print(person)
person[(1, 2)] = '黑'
# 定义一个空的dict
dog = {}
print(type(dog))

元组

# 元组 array -> tuple
# 性质和list一致,不能做增删改
# list:[]   set:{}  元组:()  字典dict:{}
t1 = (1, 2, 3)
print(t1)
t2 = 1, 2, 3, 4, 5
print(t2)
# 写一个只具备一个元素的元组
t3 = 1,
print(type(t3))  # <class 'tuple'>
t3 = 1
print(type(t3))  # <class 'int'>
print(t3)

操作符

# 操作运算符
# + - * /
print(5 + 2)
print(5 - 2)
# print("a"+2)  # 报错,强类型
print("a" * 2)
print(5 * 2)
print(5 / 3)
print(5 // 3)
print(5 % 3)
print(5 ** 3)

l1 = [1, 2, 3]
l2 = [3, 4, 5]
print(l1 + l2)
print(l1 * 2)

print('hello' * 20)

name = 'sa'
age = 18
# print('学生姓名为:' + name + ',年龄为:'+age)
print(f'学生姓名为:{name},年龄为:{age}')

练习

使用变量存储:姓名,性别,年龄,薪资,建议

使用控制台完成学生信息的CURD

students = {}


def show_menu():
    print("欢迎光临学生管理系统v1.1:")
    print("1、添加学生")
    print("2、查找学生")
    print("3、展示所有")
    print("4、删除学生")
    print("5、修改学生")
    print("6、退出系统")


def add_stu():
    # 添加学生逻辑
    name = input("学生姓名")
    score = input("学生分数")
    student = {'name': name, 'score': score}
    students[name] = student
    print("添加成功")


def search_stu():
    # 输入要查找的学生姓名
    search_name = input("请输入你要查找的学生姓名")
    all_keys = students.keys()
    if search_name not in all_keys:
        print("没有你要查找的学生")
    else:
        student_dict = students[search_name]
        # print("name:%s score:%d" % (student_dict['name'], student_dict['score'])) #python2.x的写法
        print(f"name:{student_dict['name']} score:{student_dict['score']}") #python3.x的写法


def all_stus():
    print("所有学生信息如下", end=":")
    # print(students)
    for key, stu_dic in students.items():
        print("key:%s" % key)
        print("name:%s score:%s" % (stu_dic['name'], stu_dic['score']))


def del_stu():
    del_name = input("请输入要删除的学生姓名")
    all_keys = students.keys()
    if del_name in all_keys:
        del students[del_name]
        print("删除成功")
    else:
        print("没有该学生或者已经删除")


def update_stu():
    # 修改逻辑
    update_name = input('请输入你要修改的学生的姓名:\n')
    all_keys = students.keys()
    if update_name not in all_keys:
        print("没有该学生")
    else:
        new_name = input("请输入新名字")
        new_score = int(input("请输入新分数"))
        new_stu = {'name': new_name, 'score': new_score}
        # 将旧学生删除
        del students[update_name]
        students[new_name] = new_stu
        print("修改成功")


def exit_sys():
    print("退出系统,欢迎再次使用")
    # 调用系统的结束函数
    exit(0)


while True:
    show_menu()
    choose = input("请选择1-6:")
    if choose == '1':
        add_stu()

    elif choose == '2':
        search_stu()

    elif choose == '3':
        all_stus()

    elif choose == '4':
        del_stu()

    elif choose == '5':
        update_stu()

    elif choose == '6':
        exit_sys()

    else:
        print("输入有误,请重新输入!!!")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/38381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于ANSYS 2019R1全解一款双吸泵的双向流固耦合方法

作者&#xff1a;李雷 一、导读 对于旋转机械来说&#xff0c;传统设计从理论计算到手工木模图&#xff0c;再到模型泵的加工制造&#xff0c;最后进行相关性能试验。当性能试验与预期效果差距较大的时候还需要修改水力模型。这种传统的设计不仅设计周期长&#xff0c;而且成…

Vue3+nodejs全栈项目(资金管理系统)——后端篇(二)用户模块

文章目录用户模块的增删改查新增创建user_info表初始化路由模块路由模块处理函数(添加&#xff09;测试查询路由模块处理函数(查询)测试编辑&#xff08;根据id&#xff09;路由模块处理函数&#xff08;编辑/更新&#xff09;测试删除(根据id&#xff09;路由模块处理函数测试…

黑马JVM学习笔记-内存结构

什么是JVM? 定义&#xff1a; Java Virtual Machine - java 程序的运行环境(Java二进制字节码的运行环境) 好处&#xff1a;3 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收功能数组下标越界检查(下标越界抛出异常比数组新元素覆盖其他部分造成的危害小)…

1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务

本教程已经花费了 24 个文章的篇幅,介绍了使用 SAP ABAP SEGW 这个开发工具,开发基于 SAP ABAP 技术栈的 OData 服务的详细步骤。 正如本教程目录 中提到的那样,SAP OData 开发技术包含传统的 ABAP,RAP(Restful ABAP Programming) 和 CAP(Cloud Application Programming) …

前端程序员接私活,直呼赚麻了

总有一些前端程序员会想找私活&#xff0c;但是又不清楚具体的办法&#xff0c;或者是做了但没完全做&#xff0c;吃力又不讨好还赚不到钱。今天就给大家介绍一些可行性高的方法&#xff0c;让你快速找到合适的前端兼职。 干货满满&#xff0c;希望大家点赞收藏下&#xff0c;别…

Java 异常中 e.getMessage() 和 e.toString() e.printStackTrace()的区别常见的几种异常

Java 异常中 e.getMessage() 和 e.toString() e.printStackTrace()的区别 一、概述 在java异常体系中&#xff0c;要打印异常信息&#xff0c;可以通过&#xff1a;e.getMessage() 、 e.toString() e.printStackTrace() 等方法打印出 一些 异常信息。已知的是这些方法都可以打…

WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较

在本文中&#xff0c;我们通过一个名为WinBUGS的免费贝叶斯软件&#xff0c;可以很容易地完成基于似然的多变量随机波动率&#xff08;SV&#xff09;模型的估计和比较。 最近我们被客户要求撰写关于随机波动率的研究报告&#xff0c;包括一些图形和统计输出。通过拟合每周汇率…

机器学习笔记之贝叶斯线性回归(一)线性回归背景介绍

机器学习笔记之贝叶斯线性回归——线性回归背景介绍引言回顾&#xff1a;线性回归场景构建从概率密度函数认识最小二乘法回顾&#xff1a;最小二乘估计回顾&#xff1a;线性回归与正则化关于线性回归的简单小结贝叶斯线性回归贝叶斯方法贝叶斯方法在线性回归中的任务贝叶斯线性…

kubernetes深入理解Pod对象之调度篇

目录 一、Pod调度流程 二、 容器资源限制 2.1 内存和CPU限制 三、 NodeSelector 四、NodeAffinity 4.1 基本概念 4.2 Pod 示例 4.2.1使用首选的节点亲和性调度 Pod 4.2.2依据强制的节点亲和性调度 Pod 五、Taints与Tolerations 5.1 基本概念 5.2Taints与Toleratio…

Ceph块存储

目录 一、环境准备 二、什么是块存储 三、创建块共享 1、查看存储池 2、创建镜像、查看镜像 3、镜像扩容、缩容 四、客户端通过KRBD访问共享镜像 1、客户端安装 2、客户端配置 3、客户端获取镜像 4、客户端写入数据 五、快照 1、查看、创建快照 2、还原快照 六、…

shell实战案例:系统性能监控脚本

一 简介 下面我们来编写一个检测系统环境、监控系统性能的脚本&#xff0c;并判断各项数据指标是否符合预设的阈值。如果数据有异常&#xff0c;就报警&#xff0c;如何报警&#xff0c;视情况而定。注意脚本中的很多预设值只是假设值&#xff0c;在实际生产环境中还需要根据业…

cubeIDE开发, 物联网应用之stm32的蓝牙通信设计

一、蓝牙通信技术 蓝牙技术是一种点对点点对面的网络构架&#xff0c;他可以在限制的范围内以很快的速度传输网络数据&#xff0c;在物联网应用中&#xff0c;支持网状网络的物联网短距离无线通信。目前它还被广泛用于智能可穿戴设备、智能门锁、智能医疗设备、智能照明设备、智…

十二、CANdelaStudio入门-Security

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的Security概念,欢迎各位朋友订阅、评论,…

【GamePlay】Unity手机屏幕UI适配问题

前言 关于UI不同分辨率适配问题和摄像机视口的注意事项 画布大小与锚点 首先要了解这两个东西 对于画布大小&#xff0c;主要理解match的含义&#xff0c;滑到Width时&#xff0c;表示以宽度为基准&#xff0c;Width不变&#xff0c;Height根据真机分辨率改变。 比如自己设…

pytest测试框架搭建

文章目录一、pytest是什么&#xff1f;二、pytest的特点三、pytest下载安装四、pytest的配置五、pytest约束规则六、编写脚本七、pytest的运行方式1、主函数模式2、命令行模式3、通过读取pytest ini配置文件运行 &#xff08;最主要运用的方式&#xff09;一、pytest是什么&…

【Unity】按Text文本内容自适应背景大小

按照文本内容自动调节背景框大小是十分方便的&#xff0c;本文章记录一下通过无代码方式实现该效果。&#xff08;版本Unity2018.4&#xff09; 目录 一、Text组件操作 二、Image组件操作 三、效果展示 一、Text组件操作 创建新的Text组件&#xff0c;然后进行下面操作&am…

LabVIEW避免在使用functional global时内存中有多个大数组的拷贝

LabVIEW避免在使用functional global时内存中有多个大数组的拷贝 有一个非常大的数组,但想保证在内存中只有一个拷贝.知道可以用移位寄存器,并用"ReplaceArray Subset" VI 保证只有一个拷贝。然而&#xff0c;想使之成为一个functionalglobal。因为&#xff0c;不能…

Ceph对象存储

目录 一、环境准备 二、什么是对象存储 三、部署对象存储服务 1、启动RGW服务 2、更改RGW服务端口 3、客户端测试 一、环境准备 Ceph集群搭建参照&#xff1a;Ceph集群部署_桂安俊kylinOS的博客-CSDN博客 以下Ceph存储实验环境均基于上述Ceph集群环境搭建。 二、什么是…

理解中国经济的五层思维-中国视角下的宏观经济

理解中国经济的五层思维 – 潘登同学的宏观经济学笔记 文章目录理解中国经济的五层思维 -- 潘登同学的宏观经济学笔记思想的力量理解中国经济的五层思维第一层思维&#xff1a;唯GDP论第二层思维&#xff1a;天真的市场派(新-新古典综合世界观对中国经济的影响)第三层思维&…

20221126给Chrome浏览器安装扩展程序——猫抓

20221126给Chrome浏览器安装扩展程序——猫抓 2022/11/26 21:43 百度&#xff1a;chrome 猫爪 https://www.onlinedown.net/soft/1232149.htm 猫抓 1.0.17 最新版 设置→ 01 百度搜索 QQ图片20221126214334.png 02 猫抓 QQ图片20221126214407.png 03 设置.png 04扩展程序.…