热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python变量和简单的数据类型

1、运行hello_world.py时发生的情况运行hello_world.py时,Python都做了些什么呢?实际上,即便是运行简单的程序,Python所做的工作也相当多:#!u

1、运行hello_world.py时发生的情况

  运行hello_world.py时,Python都做了些什么呢?实际上,即便是运行简单的程序,Python所做的工作也相当多:

技术分享技术分享
#!/usr/bin/env python
# -*- coding:utf-8 -*-

print("Hello Python world!")
View Code

  运行上述代码时,你将看到如下输出:

Hello Python world!

  运行文件hello_world.py时,末尾的.py指出这是一个python程序,因此编译器将使用python解释器来运行它。Python解释器读取整个程序,确定其中每个单词的含义。例如,看到单词print时,解释器就会将括号中的内容打印到屏幕,而不会管括号中的内容是什么。

 

2、变量

  下面尝试在hello_world.py中使用一个变量。在这个文件开头添加一行代码,并对第二行代码进行修改,如下所示:

技术分享技术分享
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#Author:jie.fang

message = "Hello Python world!"
print(message)
View Code

  运行这个程序,输出与之前的一样:

Hello Python world!

  我们添加了一个message变量。每个变量都存储了一个值——与变量相关联的信息。在这里,存储的值为文本"Hello Python world!"。

  添加变量导致python解释器需要做更多的工作。处理第一行代码时,它将文本"Hello Python world!"与变量message关联起来;处理第二行代码时,它将与变量message关联的值打印到屏幕。

  下面来进一步扩展这个程序:修改hello_world.py,使其再打印一条消息。为此,在hello_world.py中添加一个空行,再添加如下两行代码:

技术分享技术分享
#!/usr/bin/env python
# -*- coding:utf-8 -*-

message = "Hello Python World!"
print(message)

message = "Hello Python Crash Course world!"
print(message)
View Code

  现在运行这个程序,将看到两行输出:

技术分享技术分享
Hello Python World!
Hello Python Crash Course world!
View Code

  在程序中可以随时修改变量的值,而python将始终记录变量的最新值。

2.1 变量的命名和使用

  在python中使用变量时,需要遵守一些规则和指南。违反这些规则将引发错误,而指南旨在让你编写的代码更容易阅读和理解。请务必牢记下述有关变量的规则。

  1. 变量名只能包含字母、数字和下划线。变量名可以字母或者下划线打头,但不能以数字打头,例如,可将变量命令为message_1,但不能将其命令为1_message。
  2. 变量名不能包含空格,但可以使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量greeting message会引发错误。
  3. 不要将python关键字和函数名作为变量名,即不要使用python保留用于特殊用途的单词,如print。
  4. 变量名应既简介又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_person_name好。
  5. 慎用小写字母l和大写字母O,因为它们可能被人看成数字1和0。

  要创建良好的变量名,需要经过一定的实践,在程序复杂而有趣时尤其如此。随着编写的程序越来越多,并开始阅读别人编写的代码,越来越善于创建有意义的变量名。


   注意  就目前而言,应使用小写的python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个比较好的习惯。


2.2 使用变量名时避免命名错误

  编写程序的时候,定义变量和变量的引用时要注意变量名是否有误。错误实例如下:

技术分享技术分享
#!/usr/bin/env python
# -*- coding:utf-8 -*-

message = "Hello Python World!"
print(mesage)
View Code

  在上面的代码中定义的变量名是message,但是print引用的时候却是mesage,运行该程序,将会有如下报错:

技术分享技术分享
Traceback (most recent call last):
  File "D:/JetBrains/WorkPlace/Python3/0902/error.py", line 7, in 
    print(mesage)
NameError: name mesage is not defined
View Code

  程序存在错误时,python解释器将竭尽所能地帮助你找出问题所在。程序无法成功运行时,解释器会提供一个Traceback。Traceback是一条记录,指出了解释器在尝试运行代码时,在什么地方遇到了错误。下面就是刚刚变量名引用错误的一个Traceback:


Traceback (most recent call last):
File "D:/JetBrains/WorkPlace/Python3/0902/error.py", line 7, in
print(mesage)
NameError: name ‘mesage‘ is not defined


  计算机一丝不苟,但不关心拼写是否正确。因此创建变量名和编写代码时,你无需考虑英语中的拼写和语法规则。

  很多编程错误都很简单,只是在程序的某一行输出了一个字符。为找出这种错误而花费很长时间的大有人在。


 注意  要理解新的编程概念,最佳的方法就是尝试在程序中使用它们。


未完待续...

python变量和简单的数据类型


推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
author-avatar
灵通vs砖头_836
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有