Python------------用户交互

Posted qdblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python------------用户交互相关的知识,希望对你有一定的参考价值。

变量与常量

1. 变量的概念

计算机工作的过程直白讲就是对数据的增、删、改、查操作,那么数据一定是变化的,我们要存储变化的数据就应该用“变量”。

什么是变量

  • 变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。

为什么要有变量

  • 程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时的状态以及状态的变化。 #比如: 英雄的等级为1,打怪升级(变)为10 ;僵尸的存活状态True,被植物打死了,于是变为False ;人的名字为Albert,也可以修改为AlbertMa。

Python如何定义变量

  • 变量名(相当于门牌号,指向值所在的空间),等号,变量值,是从右到左赋值。
name=‘Albert‘
sex=‘male‘
age=18
level=10

2. Python变量的定义规范

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能成为变量名

[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]

3. Python变量定义方式:

驼峰体

驼峰式命名法就是当变量名或函式名是由一个或多个单词连结在一起。

驼峰体分两种:

1 大驼峰 所有单词首字母全都大写 AgeOfTeacher

2 小驼峰 除第一个单词外其他所有单词首字母大写 ageOfTeacher。

#大驼峰
AgeOfAlbert = 18  
NumberOfStudents = 80
#小驼峰
ageOfTeacher = 28

下划线(推荐使用)

age_of_albert = 18  
number_of_students = 80

定义变量名不好的方式

  1. 变量名为中文、拼音
  2. 变量名词不达意
  3. 变量名用中文,Python居然支持用中文做变量名,这真是颠覆了我的世界观,也许就是为了照顾我国一些程序猿而做的优化吧

值得一提的是:在公司里项目很大的时候,我们往往会命名的变量名比较长,这是一方面是为了变量名不重复,另一方面是为了能看到变量名就知道数据的含义

有一句话给大家:名称即逻辑

定义变量会有:id(唯一标识号),type(变量类型),value(变量值)

4. 常量

常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量,举例:日本首相的年龄是一个变量,加入他今天突然挂了,那么这个年龄就不会在改变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量

JAPANESE_PRIME_MINISTER_AGE = 56

在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错

五 基本数据类型

1. 说明

Python不允许不同类型相加动态:定义变量不用数据类型声明,且确定一个变量的类型是第一次给他赋值的时候

2. 字符串(str)

刚才我们定义人名使用的是 name = ‘Albert’来定义的,形如 ‘ ‘ 或者 " " 或者 """ """ 单引号,双引号或者三引号中间写内容的这种定义方式就是 str类型,我们叫做字符串类型

print(‘Hello world‘)  # 这就是一个字符串类型

定义的时候是把等号右侧赋值给等号左侧的变量

我们不仅要知道他的数据类型是str,在学习一个数据类型的时候还要知道他是一个可变类型还是不可变类型。

  • 不可变类型:当变量值改变的时候id也会一起变化,相当于重新开辟一块内存空间,给变量重新赋值,原来的值是不可变的,str就是一个不可变类型
  • 可变类型:当变量值改变的时候,id可以保持不变,就相当于是在原来的基础上修改,位置还是没有变的

可变类型可以理解为一个大房子的地方不动,给这个房子装修一下就是做了修改,而不可变类型就是这个房子不能重新装修,你要改可以,你在别的地方再盖一个房子,你再住进去。

3. 整型(int)

我们定义一个人的年龄的时候 使用age = 18 来定义的,等号后面直接?整数数字,那么这个变量的数据类型就是int类型,我们叫整型,整型是一个不可变类型

4. 浮点型(float)

当我们定一个人的身高的时候,使用height = 1.83 来定义,同理这是float类型,我们叫浮点型,浮点型是一个不可变类型,浮点型直观意义上来讲就是需要把值精确到小数的变量。

5. 列表(list)

当我们需要存储一个班级里面所有学生的名字的时候,就是用一个变量来存储多个值,以上三种数据类型都只能存储一个值,这种情况我们可以只用list这种数据类型来完成,我们叫列表。定义形式:中括号内,多个元素用逗号分割,每个元素可以是任意的数据类型,列表是一个可变类型

names = [‘albert‘,‘james‘,‘kebo‘]  # 存储一个班级的多个学生
information = [‘albert‘,18,1.83]  # 存储一个人信息
# 存储多人信息
informations = [[‘albert‘,18,1.83],[‘james‘,34,2.03],[‘kebo‘,40,1.98]]

6. 元组(tuple)

另外一种和list类似的数据类型是tuple,我们叫元组,他的用法和list非常相似,只是列表可以修改,而元组不能修改,只能查看,他的定义方式是小括号内,多个元素用逗号分割,每个元素可以是任意的数据类型。以上代码中括号改成小括号就可以了,注意是英文的小括号(),元组是一个不可变类型

7. 字典(dict)

上面代码存储多个人的信息的时候,你们大概的能看出来我是存储的每个人的姓名,年龄和身高,但是不明确,我们不能用猜的,要解决这个问题就是定义的时候就说明白,这个时候字典来了,定义形式:花括号内多个元素用逗号分割,每个元素按照key: value的形式,需要注意的是:字典的key只能用不可变类型,我们一般使用字符串,字典是一个可变类型。

information = {‘name‘:‘albert‘,‘age‘:18,‘height‘:1.83}  # 存储一个人信息
informations = [
        {‘name‘:‘albert‘,‘age‘:18,‘height‘:1.83},
        {‘name‘:‘james‘,‘age‘:34,‘height‘:2.03},
        {‘name‘:‘kebo‘,‘age‘:40,‘height‘:1.98}
]  # 存储多人信息

8. 集合(set)

在NBA有400多位球员,如果我们不考虑先后顺序要存储这400多位球员,肯定是不能重复的,每位球员只能算一个,上面的列表和元组是可以重复的,我们只需要知道“Albert”肯定是不在这里面的就可以了。定义形式:花括号内多个元素用逗号分割,每个元素可以是任意的数据类型,但是不能重复,集合是一个可变类型。

NBA_players = {‘James‘, ‘Kobe‘, ‘Jordan‘, }

9. 布尔(Bool)

在NBA中有众多的球员,但是有的人可能一辈子也打不了NBA了,如果我们想要判断一个人是否是NBA球员就可以用布尔类型,它只有两个值,True和False。

基本的数据类型,我们就暂时先了解到这里,后面的章节会对这些数据类型的使用进行更加详细的讲解。

10. 补充(非常重要)

关于变量的命名在这里做一点补充,这虽然简单,但是非常重要。

推荐大家使用『匈牙利命名法』,这也是在工作中最为规范的变量命名方式,有些时候看一个人写的代码,只需要看他写的变量名就能粗略判断出他的水平了。

简而言之,匈牙利命名法就是把变量的『类型』缩写,放到变量名的最前面。关键在于,这里说的变量『类型』,指的是那些和你的代码业务逻辑相关的类型。比如,在你的代码中有两个变量:students 和 teachers,他们分别代表的是用来存储学生的集合与用来存储老师的列表,使用『匈牙利命名法』后,可以把这两个名字改写成这样:

students -> set_students

teachers -> list_teachers

很多情况下,使用『匈牙利命名法』是个不错的主意,因为它可以改善你的代码可读性,尤其在那些变量众多、同一类型多次出现时,注意不要滥用就好。

六 注释

随着学习的深入,用不了多久,你就可以写复杂的上千甚至上万行的代码啦,有些代码你花了很久写出来,过了些天再回去看,发现竟然看不懂了,这太正常了。 另外,你以后在工作中会发现,一个项目多是由几个甚至几十个开发人员一起做,你要调用别人写的代码,别人也要用你的,如果代码不加注释,你自己都看不懂,更别说别人了,这是会挨打的。所以为了避免这种尴尬的事情发生,一定要增加你代码的可读性。

#号后边的任何数据在代码运行的阶段不会被输出

代码注释分为三种:

  1. 单行注释,注释单独占一行,以 #开头,打一个空格,后面写注释的内容

a = 1

# a += 1 这就是注释的#使用方式

  1. 行内注释,在代码尾部,打两个空格,然后打一个 #,接着再打一个空格,后面写注释的内容。

a += 1 # 行内注释

  1. 多行注释, 可以用三对双引号"""注释内容 """,或者三对单引号中间写注释内容,和明显多行注释就是可以注释多行,当你的注释比较长的时候,写很长的一行不便于阅读,这时,我们推荐使用多行注释。

"""

hello, world!

"""

代码注释的原则:

  • 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
  • 注释可以用中文或英文,但不要用拼音,也不要用中英文混杂

注意(非常重要):

注释你们现在可能谁都会写,但其实在工作中,除了一些高标准的公司之外,能够规范写注释的人非常少,写注释和写规范的注释是代表一位程序员编程素养的最简单的方式。

七 文件头

注意:既然是文件头,那么自然是要放在文件顶部,这也是开发规范的一些细节

#!/usr/bin/env python  # 指定解释器
# -*- coding: utf-8 -*-  # 指定文件字符编码

如果每次写代码我们都自己去写的话有点浪费时间,我们可以自己先在Pycharm上面配置好,以后每次新建一个文件自动就会添加文件头。MacOS系统的用户可以按照先点击Pycharm左上角按照:Pycharm--Preferences--Editor--File and Code Templates--Python Script 的顺序找到一块空白的区域,把以下代码粘贴进去,Windows系统的用户可以按照:File--Settings--Editor--File and Code Templates--Python Script,执行同样的操作。注意:作者那一行代码可以改成你自己的名字。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : ${DATE} ${TIME}
# @Author  : Albert  
# @File    : ${NAME}.py

八 实现用户交互

文章写到这里才正式进入本章标题的内容,前面都是铺垫

很早以前,我们去银行取钱,需要有一个银行业务员等着我们把自己的账号密码输入给他,然后他去进行验证,成功后,我们再将取款金额输入告诉他。骄傲的现代人,会为客户提供一台ATM机(就是一台计算机),让ATM机跟用户交互,从而取代人力。然而机器是死的,我们必须为其编写程序来运行,这就要求我们的编程语言中能够有一种能与用户交互,接收用户输入数据的机制。

用户交互就是程序等待用户输入数据之后,在执行下一步的程序,我们使用 input 来完成这个操作。

name = input(‘请输入姓名:‘)  # 我把输入的内容赋值给name这个变量
print(‘你好’ + name)  # 当用户输入完成自己的姓名之后就会打印出来 你好XXX

Python2 与Python3 的区别

  • 在python3中 input:用户输入任何值,都存成字符串类型
  • 在python2中 input:用户输入什么类型,就存成什么类型
  • Python2 中的raw_input:等于python3的input

需要注意的是:当需要输入一个数字的时候,考虑到我们会用这个数字做计算,而Python3的input会默认转成str,所有我们需要把用户输入的数据转化成int

age = input(‘请输入年龄‘)
age = int(age)  # 把字符串age转化成int类型age用于计算

以上是关于Python------------用户交互的主要内容,如果未能解决你的问题,请参考以下文章

Json与Ajax交互报错解决No converter found for return value of type: class com.github.pagehelper.PageInfo(代码片

Json与Ajax交互报错解决No converter found for return value of type: class com.github.pagehelper.PageInfo(代码片

python用户交互程序-005

与用户交互

python的注释与用户交互 基本数据类型

python3 变量理解 解释器理解 常量理解 用户交互理解