【Python基础系列】Part1. 基本数据类型与变量

news2024/9/29 3:29:11

一、变量与简单数据类型

1.Hello World

hello_world.py中输入:

print("Hello World")

运行,然后会看到一下输出:

Hello World

具体流程:运行hello_world.py时,末尾的.py表明这是一个python程序,因此使用python解释器来运行。python解释器会读取整个程序,然后按照既定的方式运行。

2.变量

下面使用一个变量来输出Hello World

message = "Hello World"
print(message)

运行这个程序就会发现输出与之前相同。

message就是一个变量,存储了一个字符串值,然后用print将其打印出来。

message = "Hello World"
print(message)
message = "Yep"
Print(message)

运行后,两个字符串都会被打印出来,但最后message中保存只有最新的字符串值。

更加深入的探讨一下变量

对于

message = "Hello World"

初学者可能会以为message保存的就是这个字符串的值,毕竟用print打印它显示出来的就是字符串,实际上并不是这样。

先说结论:python变量保存的是这个引用,即变量是内存地址的别名。

python赋值的过程:

  • 创建对象"Hello World"
  • 变量message引用该对象
  • 完成赋值

如下图
![在这里插入图片描述](https://img-blog.csdnimg.cn/1d7e770151ee4a838cbde19df647d39e.png

变量存储的只是值所在的内存地址,而不是这个变量本身。因此,Python变量所需要的存储空间大小都是一致的。而有些语言不是这样,变量所占的空间就是按照变量的实际大小决定,例如C语言中,int和char类型占用空间就不一样。

message = "Hello World"
print(id(message))#1726747630384
message2 = message
print(id(message2))#1726747630384
message3 = "Hello World"
print(id(message3))#1726747630384
#预备知识
#python内置函数id()会查看对象的身份,也就是对象的内存地址
#3个变量地址相同,表明指向的都是同一个变量
2.1变量的命名和使用

命名注意事项:

  • 变量名只能能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头。
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词。
  • 不要将Python关键字和函数名用作变量名。
  • 变量名应既简短又具有描述性。

3.字符串

字符串就是一串字符,用引号引起来,可以是双引号也可以是单引号。

"This is a string."
'This is also a string.'
#如果字符串本身就包含单双引号,那么最好用另一种引号
"This is a 'STRING'"
#3个引号
#通常情况下我们用单引号或者双引号定义一个字符串的时候只能把字符串连在一起写成一行
#要想保存多行字符串,可以使用三个引号
"""
Hello
	World
		Cup"""
3.1字符串操作

首字母大写

name = "hello world"
print(name.title())# Hello World

全部大写或小写

name = "Hello World"
print(name.upper())#HELLO WORLD
print(name.lower())#hello world

合并字符串

one = "Hello"
two = "World"
three = "Cup"
print(one + two + three) #Hello World Cup

添加空白

#\t添加制表符
print("python")#python
print("\tpython")#	python
#添加换行符 \n
print("Hello\nWorld")
#Hello
#World

删除字符串首尾空白

str = "   Hello World   "
print(str)#   Hello World   
print(str.strip())#Hello World
#strip()删除首尾空白,rstrip()删除尾部空白,lstrip()删除头部空#白
#删除操作是暂时的,要想保留操作需要将结果存到变量中

4.数字

4.1整数
#加
2 + 3
#减
2 - 3
#乘
2 * 3
#除
3 / 2#1.5
#整除
3 // 2# 1   向下取整
#乘方
3 ** 2 #9
4.2浮点数
0.1 + 0.1 #0.2
2 * 0.1   #0.2

但有些时候,包含的小数位数可能是不准确的。

0.2 + 0.1
#0.30000000000000004

原因:浮点数(小数)在计算机中实际是以二进制存储的,并不精确。
比如0.1是十进制,转换为二进制后就是一个无限循环的数:
0.000110011001100110011001100110011001100110011001100110
python是以双精度(64bit)来保存浮点数的,后面多余的会被砍掉,所以在电脑上实际保存的已经小于0.1的值了,后面拿来参与运算就产生了误差。

解决办法:使用decimal库

5注释

注释用#,#后面的内容都会被Python解释器忽略

#你好
print("Hello")

多行注释

"""这里是
   多行注释"""

python之禅

import this

"""
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
"""

6总结

  • 学会了输出字符串
  • 学会使用变量,变量的命名,变量的深入理解
  • 了解了字符串,学会使用若干个字符串的操作
  • 学会如何使用整数,浮点数
  • 学会使用注释

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

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

相关文章

如何选择正确的哈希算法?

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 你想要的,这里都有! DevWeekly收集整理每周优质开发者内容,包括开源项目、资源工具、技术文章等方面。 每周五定期发布,同步更新到知乎:Jac…

RabbitMQ--延迟队列--使用/原理

原文网址:RabbitMQ--延迟队列--使用/原理_IT利刃出鞘的博客-CSDN博客 简介 本文介绍RabbitMQ的延迟队列的用法。 本内容也是Java后端面试中常见的问题。 概述 延迟队列用来存放延迟消息。延迟消息:指当消息被发送以后,不想让消费者立刻拿到…

业务:财会业务知识之借贷记账法

一、为什么要学习借贷记账法 如果你是一位金融行业的IT从业者,那你经常会接触到借贷的概念,只要复式记账的概念,其实也够用了,在记录交易流水时,跟业务问清楚哪些交易记录哪个借贷符号,记录哪些科目既可以…

【Java】从0开始个人网站建立(三)博客主页文章分页查询,预览显示

(一)工程建立到登录与认证-Spring boot、Shiro、Mybatis-Plus、MySql (二)博客显示与登录后按钮按照Shiro授权显示加载html (三)博客主页文章分页查询,预览显示 五、文章分页查询、预览显示 5…

Discrete Optimization课程笔记(3)—局部搜索

目录​​​​​​​ 1.局部搜索(Local Search) Case1: The Queens problem(Max/Min-Conflict) 2.邻域交换(swap neighborhood) Case2: Car Sequencing problem(number of violations) Case3: The Magic Square Problem(degree of violations) ​​​​​​​3.旅行商问题…

【Linux】进程的概念|查看进程的方法|子进程

文章目录基本概念“先描述”进程(PCB)task_ struct内容分类“再组织”进程最终结论:如何查看进程方法一:方法二:通过系统调用获取进程标识符通过系统调用创建进程子进程(fork)实验一&#xff1a…

Java基于PHP+MySQL客户信息管理系统的设计与实现

随着我国经济的发展,越来越多的企业出现,但是相对企业来说客户才是企业的根本,如何能够更好的当下的客户信息进行管理,是很多企业一直以来所关心的问题,如果对客户的信息不够重视最终将会使企业在激烈的竞争中失去活力,为此我们开发了本客户信息管理系统。 本客户信息管理系统采…

IB究竟在考什么?IB真的有传闻中的那么难吗?

提起学习“国际课程之王”IB的感受,学生们估计都能开一个“吐槽大会”了,IB很难,不少人学IB,GET到的第一个技能,就是“熬夜”。▲IB学生做的搞笑图:凌晨三点,唯一一扇亮着灯的窗户一定是属于IB学…

安装与调试Dragonfly实现自动化测试项目

通过ASP.NET Core Selenium 实现 Web 自动化平台 1、获取项目 从Gitee上拉取代码到本地。地址: 点击这里 有多种方式拉取,我使用的zip下载方式。 2、解压运行 这里我是在F盘新建了一个文件夹,只放这一个项目。 点击解压文件,找到“.sln”…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学生社团管理系统9p5w4

最近发现近年来越来越多的人开始追求毕设题目的设创、和新颖性。以往的xx管理系统、xx校园系统都过时了。大多数人都不愿意做这类的系统了,确实,从有毕设开始就有人做了。但是很多人又不知道哪些毕设题目才算是新颖、创意。太老土的不想做,创…

逻辑回归-为什么模型会更加侧重于学习那些数值比较大的列

np.random.seed(24)features,labels arrayGenReg(w[1,-1,1])将第一个特征取值调大100倍 features[:,:1] features[:,:1] * 100 features --- array([[ 132.92121726, -0.77003345, 1. ],[ -31.62803596, -0.99081039, 1. ],[-107.08162556, -1.43…

python爬取网页内的指定内容-不需要技术一样爬取网页详细教程

爬虫文章采集,我们怎么利用爬虫采集自己想要的文章内容,我们需要学习python爬虫吗?如果完全靠自己自学,又是从零基础开始学习Python的情况下,按照每个人的学习和理解能力的不同,我认为大致上需要半年到一年…

【网络杂烩 ---> 网络安全】DLL 注入 --- c/c++ 代码实现(超 · 详细)

麻了,之前写的博客全是收藏,没人点赞,来点赞行不行! GitHub同步更新(已分类):Data_Structure_And_Algorithm-Review 公众号:URLeisure 的复习仓库 公众号二维码见文末 以下是本篇…

我国火箭回收历程介绍

引言 火箭回收技术对于节约火箭发射成本具有重要意义,中国的火箭回收技术研发步履不停,本文将总结中国的可重复使用发动机和垂直回收火箭发展现状,数据更新时间为2022年11月11日。如需了解火箭回收相关概念. 提示:本文图片和表格…

Loss模块

导入包 from utils import cos_sim, euclidean_dist 方法 EucSoftmax 变量 “”"Calculate cos distance loss. Args:protos: protos vector in now episode (**class_size, hidden_size**)querys: queres vector to classify **(querys_len, hidden_size)**querys_y…

深浅拷贝的区别?如何实现一个深拷贝?

一.数据类型存储 js中存在两大数据类型: 基本数据类型:保存在栈内存中; 引用数据类型:保存在堆内存中,引用数据类型的变量是一个指向堆内存中实际对象的引用,存在栈中。 二.浅拷贝 浅拷贝:…

CRM系统的功能有哪些?

**CRM系统**的功能有:1、联系人管理;2、沟通跟踪;3、潜客管理;4、电子邮件集成;5、文档管理;6、报价/提案管理;7、商机管理;8、工作流自动化;9、报表/分析;10…

利用Seagate service获得system shell

这是挖掘 CVE-2022-40286 漏洞的记录。 闲来无事,我上网随便找了一个驱动来进行测试。我想找一个知名公司的产品,但是又不能是太偏太难懂的东西。 我最先发现了一个叫"Seagate Media Sync"的软件,这是一个将文件复制到希捷无线硬…

SR-MPLS技术基础讲解

目录 SR-MPLS基础概念 使用Segment Routeing MPLS技术的优点 Segment Routeing MPLS的基本原理 SRGB Segment ID Bind SID 粘连标签 OSPF对于SR-MPLS的扩展 OSPF对邻接SID做了细分 10类LSA定义的TLV类型 10类LSA定义的TLV的报文格式 ISIS对SR-MPLS的扩展…

pyinstaller瘦身指南

目录说明无优化直接打包优化:创建专用虚拟环境原因分析和总结说明 之前写了一个自动化办公的python脚本,按需求打包exe。经过不断优化打包过程,把26.1MB的文件变成了9.5MB的文件。 打包工具pyinstaller。 安装: pip install pyi…