【Python基础系列】Part1. 基本数据类型与变量
创始人
2024-03-13 15:16:07
0

一、变量与简单数据类型

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个引号
#通常情况下我们用单引号或者双引号定义一个字符串的时候只能把字符串连在一起写成一行
#要想保存多行字符串,可以使用三个引号
"""
HelloWorldCup"""
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总结

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

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...