Python 变量:创建、类型、命名规则和作用域详解
变量
变量是用于存储数据值的容器。
创建变量
Python没有用于声明变量的命令。
变量在您第一次为其分配值时被创建。
示例
x = 5
y = "John"
print(x)
print(y)
变量不需要声明为特定类型,并且甚至在设置后可以更改类型。
示例
x = 4 # x的类型为int
x = "Sally" # 现在x的类型是str
print(x)
类型转换
如果要指定变量的数据类型,可以使用类型转换。
示例
x = str(3) # x将变为'3'
y = int(3) # y将变为3
z = float(3) # z将变为3.0
获取类型
您可以使用type()函数获取变量的数据类型。
示例
x = 5
y = "John"
print(type(x))
print(type(y))
您将在本教程后面学到更多关于数据类型和类型转换的知识。
单引号还是双引号?
字符串变量可以使用单引号或双引号声明:
示例
x = "John"
# 与以下代码等效
x = 'John'
区分大小写
变量名区分大小写。
示例
这将创建两个不同的变量:
a = 4
A = "Sally"
# A不会覆盖a
变量名
变量可以具有短名称(如x和y)或更具描述性的名称(age、carname、total_volume)。Python变量的规则如下:
- 变量名必须以字母或下划线字符开头。
- 变量名不能以数字开头。
- 变量名只能包含字母数字字符和下划线(A-z、0-9和_)。
- 变量名区分大小写(age、Age和AGE是三个不同的变量)。
- 变量名不能是Python关键字。
示例
合法的变量名:
myvar = "John"
my_var = "John"
_my_var = "John"
myVar = "John"
MYVAR = "John"
myvar2 = "John"
示例
不合法的变量名:
2myvar = "John"
my-var = "John"
my var = "John"
请记住,变量名区分大小写。
多个单词的变量名
具有多个单词的变量名可能难以阅读。
有几种技巧可以使它们更易读:
驼峰命名法(Camel Case)
除第一个单词外,每个单词都以大写字母开头:
myVariableName = "John"
帕斯卡命名法(Pascal Case)
每个单词都以大写字母开头:
MyVariableName = "John"
蛇形命名法(Snake Case)
每个单词由下划线字符分隔:
my_variable_name = "John"
一次给多个变量赋值多个值
Python允许您在一行中为多个变量分配值:
示例
x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)
注意:确保变量的数量与值的数量相匹配,否则将会出错。
一个值分配给多个变量
您可以在一行中将相同的值分配给多个变量:
示例
x = y = z = "Orange"
print(x)
print(y)
print(z)
解包集合
如果您有一个列表、元组等集合中的值,Python允许您将这些值提取到变量中。这称为解包。
示例
解包一个列表:
fruits = ["apple", "banana", "cherry"]
x, y, z = fruits
print(x)
print(y)
print(z)
输出变量
Python的print()函数通常用于输出变量。
示例
x = "Python is awesome"
print(x)
在print()函数中,您可以输出多个变量,用逗号分隔:
示例
x = "Python"
y = "is"
z = "awesome"
print(x, y, z)
您还可以使用+运算符输出多个变量:
示例
x = "Python "
y = "is "
z = "awesome"
print(x + y + z)
请注意,在"Python "和"is "之后有空格字符,如果没有空格字符,结果将是"Pythonisawesome"。
对于数字,+字符作为数学运算符起作用:
示例
x = 5
y = 10
print(x + y)
在print()函数中,当您尝试使用+运算符将字符串和数字组合在一起时,Python会报错:
示例
x = 5
y = "John"
print(x + y)
在print()函数中输出多个变量的最佳方法是用逗号分隔它们,甚至支持不同的数据类型:
示例
x = 5
y = "John"
print(x, y)
全局变量
在函数之外创建的变量(如上面的所有示例)被称为全局变量。
全局变量可以被所有人使用,无论是在函数内部还是在函数外部。
示例
在函数之外创建一个变量,并在函数内部使用它:
x = "awesome"
def myfunc():
print("Python is " + x)
myfunc()
如果您在函数内部创建了一个具有相同名称的变量,这个变量将是局部的,只能在函数内部使用。具有相同名称的全局变量将保持不变,仍然是全局的,并具有原始值。
示例
在函数内部创建一个与全局变量同名的变量:
x = "awesome"
def myfunc():
x = "fantastic"
print("Python is " + x)
myfunc()
print("Python is " + x)
global关键字
通常,当您在函数内部创建一个变量时,该变量是局部的,只能在该函数内部使用。
要在函数内部创建一个全局变量,您可以使用global关键字。
示例
如果使用global关键字,变量属于全局范围:
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
此外,如果要在函数内部更改全局变量的值,也可以使用global关键字。
示例
要在函数内部更改全局变量的值,请使用global关键字引用该变量:
x = "awesome"
def myfunc():
global x
x = "fantastic"
myfunc()
print("Python is " + x)
最后
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号搜索Let us Coding
,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注
Python 变量:创建、类型、命名规则和作用域详解的更多相关文章
- Python中的变量和作用域详解
Python中的变量和作用域详解 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部 ...
- PHP常量、变量作用域详解(一)
PHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域.对于初学者来说,变量的作用域是它们所驻留的页面.因此, 如果你定义了 $var,页面余下部分就可以访问 ...
- PHP变量作用域详解(二)
学过C的人用PHP的时候一般会相当顺手,而且感到PHP太方便太轻松.但在变量作用域这方面却与C有不同的地方,搞不好会相当郁闷,就找不到错误所在.昨晚就与到这么一个问题,是全局变量在函数中的问题.今天搜 ...
- Java基础-变量的定义以及作用域详解
Java基础-变量的定义以及作用域详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字面量 常量(字面量)表示不能改变的数值(程序中直接出现的值).字面量有时也称为直接量,包 ...
- Oracle创建表语句(Create table)语法详解及示例、、 C# 调用Oracle 存储过程返回数据集 实例
Oracle创建表语句(Create table)语法详解及示例 2010-06-28 13:59:13| 分类: Oracle PL/SQL|字号 订阅 创建表(Create table)语法详解 ...
- Python中生成器和yield语句的用法详解
Python中生成器和yield语句的用法详解 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况.一些话题("if/else控制流" ...
- javascript中的this作用域详解
javascript中的this作用域详解 Javascript中this的指向一直是困扰我很久的问题,在使用中出错的机率也非常大.在面向对象语言中,它代表了当前对象的一个引用,而在js中却经常让我觉 ...
- 【转】Python的hasattr() getattr() setattr() 函数使用方法详解
Python的hasattr() getattr() setattr() 函数使用方法详解 hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值 ...
- 利用python求解物理学中的双弹簧质能系统详解
利用python求解物理学中的双弹簧质能系统详解 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的 ...
- python编写微信公众号首图思路详解
前言 之前一直在美图秀秀调整自己的微信公众号首图,效果也不尽如人意,老是调来调去,最后发出来的图片被裁剪了一大部分,丢失部分关键信息,十分恼火,于是想着用python写一个程序,把微信公众号首图的模式 ...
随机推荐
- 04-Redis系列之-持久化(RDB,AOF)
持久化的作用 什么是持久化 redis的所有数据保存在内存中,对数据的更新将异步的保存到硬盘上 持久化的实现方式 快照:某时某刻数据的一个完整备份(mysql的Dump,redis的RDB) 写日志: ...
- 【LeetCode字符串#extra】KMP巩固练习:旋转字符串、字符串轮转
旋转字符串 https://leetcode.cn/problems/rotate-string/ 给定两个字符串, s 和 goal.如果在若干次旋转操作之后,s 能变成 goal ,那么返回 tr ...
- 第129篇:JS模块化开发
好家伙,本篇为<JS高级程序设计>第二十六章"模块"学习笔记 JS开发会遇到代码量大和广泛使用第三方库的问题. 解决这个问题的方案通 常需要把代码拆分成很多部分,然后再 ...
- 【Azure 存储服务】关于中国区Azure Storage Account 存储账号服务误删除后的恢复问题
问题描述 在Azure上,如果需要恢复之前删除的存储账户(Storage Account), 有什么办法呢? 问题解答 Azure 现在推出了自主恢复已删除的存储账号的功能,具体步骤如下: 第一步: ...
- Nebula 在 Akulaku 智能风控的实践:图模型的训练与部署
本文整理自 Akulaku 反欺诈团队在 nMeetup·深圳场的演讲,B站视频见:https://www.bilibili.com/video/BV1nQ4y1B7Qd 这次主要来介绍下 Nebul ...
- STL-string模拟实现
1 #pragma once 2 3 #include<iostream> 4 #include<string.h> 5 #include<assert.h> 6 ...
- C++ 多线程笔记2 线程同步
C++ 多线程笔记2 线程同步 并发(Concurrency)和并行(Parallelism) 并发是指在单核CPU上,通过时间片轮转的方式,让多个任务看起来像是同时进行的.实际上,CPU在一个时间段 ...
- Delete `␍`
新电脑遇到的问题 Delete `␍`eslint(prettier/prettier) 网上一搜,一堆解决办法,没有一个说到点子上,都是表面上如何避免,如何设置VSCODE... 都知道是换行符的问 ...
- wsl使用记录
# wsl使用记录 安装 直接参考微软官方文档使用 WSL 在 Windows 上安装 Linux ubuntu可用发行版安装 https://ubuntu.com/wsl 访问 方式一:在资源管理器 ...
- vue-cli-service build 时间戳 方便查看bug发布时间和项目发布时间对比
vue.config.js let ret = '' const date = new Date() ret += date.getFullYear() ret += '-'+ (date.getMo ...