Python之旅(一)——常量、变量、动态类型

文章目录

  • Python背景知识
    • Python用途
    • Python的优缺点
    • Python前景(钱景)
  • 常量和表达式
  • 变量与类型
    • 变量的定义
    • 变量命名的规则
    • 变量的使用
    • 变量的类型
      • 整数 int
      • 浮点数 float
      • 字符串
      • 布尔
      • 其他(暂不介绍)
    • 动态类型

标黄部分是和C语言不同的部分

Python背景知识

Python用途

  • 科学计算&数据分析
  • Web开发(搭建网站)
  • 自动化运维
  • 人工智能
  • 爬虫程序
  • 自动化测试

Python的优缺点

优点:

  • 语法言简意赅,上手容易
  • 功能强大,用途广泛
  • 生态丰富,具有海量的成熟第三方库
  • 方便调用C/C++编写的代码进行高性能/系统级 操作

缺点:

  • 执行效率较弱
  • 对于多核心并发程序支持偏弱
  • 动态类型系统对于大型项目不太友好

Python前景(钱景)

纯Python的岗位较少。

C++岗位的薪资水平更高,C++语法也更难些。

Java岗位招聘人数更多,其薪资水平较低,Java语法相对于C++也更简单一些。

Python更多的是"辅助"功能。


常量和表达式

Python打印函数不同于C语言,直接是print(),也不需要包含头文件,"语句"后面不需要加

print(1 + 2 + 4)
print(1 + 2 / 3)

与其他高级语言有很多相同之处,如常量 1、2、3,运算符/操作符 + 、/。
1 + 2 + 4就是表达式。

第二条语句打印结果是:

在这里插入图片描述

Python中 整数 / 整数 是会出现小数的,且不会四舍五入,至于末尾是5,原因是浮点数的存储规则由国际标准IEEE(电⽓和电⼦⼯程协会) 754规定,而这一规则是存在误差的。


变量与类型

变量的定义

Python中的变量,不需要在定义时显性声明,而只是依靠初始化语句,根据初始化的值的类型来确定。

a = 10
b = 5.3

变量命名的规则

  1. 硬性规则
    • 变量名必须由数字、字母、下划线表示
    • 不能以数字开头
    • 变量名不能与Python的关键字重复
    • Python中的变量名是大小写敏感的,区分大小写
  2. 软性规则
    • 变量名要有意义、有描述性
    • 可以使用多个单词来命名,当包含多个单词的时候,命名有多种规范:
      1. 驼峰命名: 除了第一个单词的首字母之外,后序每个单词的首字母都大写,如totalCount
      2. 蛇形命名: 单词之间使用下划线来分隔

变量的使用

读取变量的值

a = 10
print(a)

修改变量的值

a = 10
a = 20
print(a)

变量的类型

我们可以通过函数type() 确定一个变量的类型

a = 10
print(type(a))
print(12.5)

在这里插入图片描述

整数 int

在Python中,int 能表示的数据范围是"无穷"的。

Python的int是可以根据要表示的数据的大小,自动扩容。

因此,long、byte、short 类型在Python中是不存在的。


浮点数 float

在Python中 float 就是"双精度浮点数"。

等同于C++/Java里的double。


字符串

Python中要求使用引号把一系列的字符引起来就构成了字符串

单引号和双引号都是可以的

两种引号的意义:可以将带双引号一段话用单引号引起来,那么这句带双引号的话就是字符串内容

如果字符串同时有单引号和双引号,怎么办?

Python中还有一种字符串,使用三引号表示:‘’’ 或者 “”"(这里的引号都是英文输入法下的,显示错误了)

f = """"""My 'name' is "xiaokuer""""
c = '''My 'name' is "dakuer"'''

在这里插入图片描述

求字符串长度用到内置函数:len()

name = 'xiaokuer'
print(len(name))

在这里插入图片描述

字符串拼接

a1 = 'hello '
a2 = 'world'
print(a1 + a2)

在这里插入图片描述

我们不可以将数字和字符串混合相加,会报错!


布尔

布尔类型是一个特殊的类型,取值只有两种,True(真)和False(假)

因此,布尔类型主要用于逻辑判定。

Python中 真 True 和 假 False 首字母大写!


其他(暂不介绍)

除了上述4种类型,list、tuple、dict、自定义类型 等等。


补充:报错情况

  1. 语法错误

    在程序运行之前,Python解释器就能把错误识别出来

  2. 运行错误

    在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题


a = 10
b = 1.2
c = 'abc'
d = True
print(type(a))
print(type(b))
print(type(c))
print(type(d))

在这里插入图片描述

为什么要有这么多类型?

  • 不同的类型,占用的内存空间是不同的

    int 默认是 4 个字节,动态扩容

    float 固定 8 个字节

    bool 一个字节就够了

    str 变长的

  • 不同的类型,对应能够进行的操作也是不同的。

    例如:int 类型可以 + - * / ,不可以使用 len

    ​ str 可以 + ,不能 - / * ,可以使用 len


动态类型

与其他如C/C++/Java中的静态类型不同

Python是一种动态类型的语言

程序运行过程中,Python的变量的类型可能会发生改变。

a = 10
print(type(a))
a = True
print(type(a))
a = 'hello'
print(type(a))

在这里插入图片描述

Python在定义变量的时候,是可以写类型的,起到一个类似声明的效果,方便程序员读代码。不过,这种声明不会引起变量类型的改变。

例如,即便让“声明”变量a为 int,其真实类型仍然是 str 类型。

a:int = 'hello'
print(type(a))

在这里插入图片描述

总结:

  • Python动态类型的写法比较灵活,提高了语言的表达能力
  • 然而,在编程中,“灵活"意味着不够"严谨”,容易出错
  • 相比之下,静态类型的语言还是更好一些的,尤其是在大型程序,多人协作开发的程序中。
  • 至于"声明",起到锦上添花的作用,主要是方便读代码的

我们通过Python变量类型的学习发现:Python的一个设计哲学:解决一个问题,只提供一种方案!
我会持续分享有关Python的博客,记录我的学习历程,希望能给大家带来更多的干货!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字节对编码 (BPE):提升语言处理的效率和有效性

原文地址:byte-pair-encoding-bpe-bridging-efficiency-and-effectiveness-in-language-processing 2024 年 4 月 12 日 介绍 在快速发展的自然语言处理 (NLP) 领域,对人类语言高效解析和理解的追求带来了重大创新。字节对编码(BPE&#x…

在 Next.js App Router 中使用仅在服务端的代码

React Server Components 架构将组件分为客户端和服务端类型,并与 Next.js 的 App Router 集成。 使用 App Router 进行开发时,区分服务端代码和客户端代码对于应用程序的安全性、性能和可维护性至关重要。这篇博文将介绍在 Next.js 应用程序中定义服务…

安装ubuntu双系统步骤

1,给U盘分区做启动盘 先下载ubuntu20.04.4-desktop-amd64.iso的镜像,双击打开UltraISO工具,然后点打开 点击写入,选择是 等待制作镜像写入U盘完成 系统镜像做完后,把需要给ubuntu安装的软件也一起拷贝到U盘里面 2&am…

旧版本jquery升级新版本后如何处理兼容性问题

前言 最近项目在漏洞扫描过程中发现现在的jquery版本受多个跨站点脚本漏洞影响,需要升级jquery版本。 1、首先下载高版本的jquery,我这里升级的是3.6.0 2、对应的bootstrap版本也要升级,这里升级的是3.3.7 本来以为替换完这两个文件后&#…

C语言中的编译和链接

系列文章目录 文章目录 ​编辑 系列文章目录 文章目录 前言 一、 翻译环境和运行环境 二、 翻译环境 2.1 编译 2.1.1 预处理 2.1.2 编译 2.1.2.1 词法分析 : 2.1.2.2 语法分析 2.1.2.3 语义分析 2.1.3 汇编 2.2 链接 三、运行环境 前言 在我们平常的写代码时,我们很…

VRRP(虚拟路由冗余协议)详解

VRRP-------虚拟路由冗余协议 在一个网络中,要做为一个合格的网络首先就要具备几种冗余,增加网络的可靠性。 这几种冗余分别为:线路冗余,设备冗余,网关冗余,UPS冗余 VRRP该协议就是解决网关冗余的。在二层…

Rust跨平台编译

❝ 如果你感觉自己被困住了,焦虑并充满消极情绪,生命出现了停滞,那么治疗方法很简单:「做点什么」。 ❞ 大家好,我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder 前言 之前我们不是写了一篇R…

【数据结构】04串

串 1. 定义2. 串的比较3. 串的存储结构4. 具体实现5. 模式匹配5.1 常规思路实现5.2 KMP模式匹配算法5.2.1 next数组计算5.2.1 代码计算next数组5.2.2 KMP算法实现 1. 定义 串(string)是由零个或多个字符组成的有限序列,又叫字符串。 一般记为s a 1 , a 2 , . . . ,…

构建智能连接的未来:物联网平台系统架构解析

随着科技的不断进步和互联网的普及,物联网(Internet of Things, IoT)已成为连接世界的新方式。物联网平台作为实现物联网应用的核心基础设施,其系统架构的设计和实施至关重要。本文将深入探讨物联网平台系统架构的关键要素和最佳实…

WebStorm

设置 打开的文件快速定位到左侧指定目录的结构位置 调出终端控制台 Alt F1 ESlint格式化代码 插件

MATLAB Simulink仿真搭建及代码生成技术—01自定义新建模型模板

MATLAB Simulink仿真搭建及代码生成技术 目录 01-自定义新建模型模板点击运行:显示效果:查看模型设置: 01-自定义新建模型模板 新建模型代码如下: function new_model(modelname) %建立一个名为SmartAss的新的模型并打开 open_…

sysbench MySQL性能测试

目录 1. QPS&&TPS 1.1 数据库启动到现在的运行时间(秒) 1.2 查询量 1.3 status命令直接显示出QPS 1.4 每秒输出数据库状态(累加) 2. sysbench 测试工具 3. OLTP MySQL测试 3.1 普通参数 3.2 支持的lua脚本 3.3 脚本参数 3.4 测试数据准备 3.5 进行测试 3.…