python 双引号 替换 单引号 python双引号内变量_字符串


从这一章开始我们正式进入Python语言的学习,通过本章节的学习,我们能掌握Python的基本数据类型,变量的定义和基本用法

Python语言本身

Python语言是由 Guido Van Rossum(吉多·范罗苏姆)在1989年圣诞节期间为了打发时间,写了一个新的脚本解释器,而Python这个名字的由来是因为吉大爷是BBC电视剧——Monty Python飞行马戏团的爱好者,所以就用Python作为这个脚本解释器的名称。Python语言本身也是开源的,经过过这么多年的发展,到现在最新的版本是3.8。也在计算机各个领域派上了用场

看看人家这个过年过得多充实,创造了一门语言,我过年估计不是在喝酒就是在昏睡,睡醒了又被拉着喝酒,整个一酒囊饭袋之徒

Python语言是完全面向对象的语言,其内部的 函数,模块,字符串,数字

目前Python的主要使用领域有如下所列(包括但不限于):

  • 网站Web开发 (国内知乎,豆瓣应该很大程度上都是用Python构建的,国外Instagram等也是)
  • 机器学习
  • 科学计算
  • 爬虫
  • 数据分析
  • 网管,运维工具
  • 嵌入式开发

其实Python语言本身设计风格非常接近伪代码


伪代码是指通常用于程序员在讨论分析问题时写的不受语言语法限制的各种标记,主要用于快速理清思路


而正因为它的这个特性,所以赢得了大量非专业程序员的青睐,这也是这篇文章的绝大部分受众都是没有受过编程训练的原因,于此同时,即使是专业程序员也变得喜欢这门语言,因为它可以让程序在写代码时更多心思花在业务逻辑思考上,而不是语言本身。

下面先给一个c语言的简单if 条件判断例子说明这个问题


#include "stdio.h"

int age = 18;
int main(){
    if (age == 18){
        printf("花季雨季");
        return 0;
    }
}


是不是感觉有点懵?我们再来个Python的例子


age = 17
if age == 17:
    print('花季雨季')


好了,现在我们看看这两种语言,谁更像是用人话写程序?Python的语法确实在很大程度上跟伪代码非常类似,在这里到不是说哪种语言更好,而是从入门到角度来讲,Python确实更加适合,如果没有计算机专业背景的同学们选择用c语言来入门通常会直接从入门到放弃,因为c语言本身其实很简单,但是它对用户暴露了大量的计算机底层细节,以至于很多新手一上来就懵逼

数据类型和语句

现在我们开始讲Pyhton语言的一些基本数据类型和基本语句吧

先来一个 数据类型

类型描述例子str一个由字符组成的不可更改的有序列。在Python 3.x里,字符串由Unicode字符组成。'Wikipedia'"Wikipedia""""Spanningmultiplelines"""bytes一个由字节组成的不可更改的有序列。b'Some ASCII'b"Some ASCII"list可以包含多种类型的可改变的有序列[4.0, 'string', True]tuple可以包含多种类型的不可改变的有序列(4.0, 'string', True)set, frozenset与数学中集合的概念类似。无序的、每个元素唯一。{4.0, 'string', True}frozenset([4.0, 'string', True])dict字典,一个可改变的由键值对组成的无序列。{'key1': 1.0, 3: False}int精度不限的整数42float浮点数。精度与系统相关。3.1415927complex复数3+2.7jbool布尔值;只有两个值:真、假TrueFalse

str类型


a = "我是字符串"
b = '我也是字符串123abc'
c = "'我是包含了单引号的字符串123abc'"
d = '"我是单引号包含了双引号的字符串123abc"'
print(a)
print(b)
print(c)
print(d)


python 双引号 替换 单引号 python双引号内变量_python 双引号 替换 单引号_02


从输出结果a和b的变量值我们可以看到,单引号和双引号包裹字符串从结果上没有任何区别,之所以有单双引号的用法,无非是c和d两个变量的地方,如果我有一段文字 本来就是需要用双引号包裹文字,然后给用户显示的,那么我该怎么办呢,我没办法这么写


a = ""我是字符串""


python 双引号 替换 单引号 python双引号内变量_字符串_03


这样系统就会报语法错误的,但是我可以用单引号把双引号也包裹起来


a = '"我是单引号包裹了双引号的字符串123abc"'


这样就OK了!

我们刚才在表格里看到还有三个双引号的用法,现在我们也来试试


a = """
你们买西瓜吗?
买一送一
买西瓜送我这个小傻瓜
"""
print(a)


python 双引号 替换 单引号 python双引号内变量_字符串_04


大家明白了吗?三个双引号或者三个单引号里面的字符串内容可以直接输出多行内容

接下来我们讲 int类型

int类型其实就是整型数字,正数和负数都是整型数字,整型数字在不同的编程语言里取值范围是不一样的,在Python3中大家基本可以忽略这个问题,如果一定要知道最大整数是多少可以通过以下方法去查询一下


import sys
print(sys.maxsize)


在我的电脑上结果是 -9223372036854775807 到 9223372036854775807

现在我们搞一些整数来玩玩


print(1+2)


python 双引号 替换 单引号 python双引号内变量_c++ 双引号中加入变量_05


这段代码简单直接,应该上过幼儿园的孩子也能明白print函数里的1+2是什么意思,是的,屏幕上会正确的显示计算结果

现在我们再来点复杂的


print(1+2-1*4+9/2)


结果是多少?谁能大声的告诉我? 没错,结果是3.5

在Python中 乘法用 * 号,除法用 / 号

计算机严格的遵守了四则混合运算的规则 先乘除,再加减的做法,最后得到了3.5

在后面运算符那个小章节我会给一个Python中运算符的优先级顺序,大家简单记一下即可,不用强行背下来,以后的路还长,编程道路上的各种报错信息会让你记忆深刻的

浮点型

关于浮点型,我们可以简单的理解为就是带小数点的数据类型即可,浮点型和整数做运算,得到的新数字肯定是浮点型


print(1+1.0)
print(2+4.5)
print(2+4)
print(4*2.5)
print(10/3)


以上结果分别会输出 2.0,6.5,6,10.0,5.0,你猜对了吗?大家可以亲手验证一下

至于别的数据类型我会在之后的章节讲到,各位在新手村的第一天可以不做了解

变量

变量这个概念我在本系列的前言那一章里简单的讲过,在这里再正经的解释一下

变量在计算机领域本质上是存储在内存中的值,每当我们对一个变量进行赋值时,就会在内存中开辟一块空间用来存储它

比如你的计算机内存是8G,当我们定义一个了一个整型变量 x=2 时,Python就会向内存申请一段内存空间用于保存这个变量的值,假设这个变量占据了14个字节,那么系统可用的内存就会被消耗掉14个字节,当我们一个程序的变量越来越多而且得不到释放时,就会让可用内存变少,系统变慢

来一个字节对应关系,具体这些关系是怎么来的,以后的章节我会详细阐述


1K=1024字节
1M=1025K
1G=1024M
1T=1024G


在Python中变量的赋值可以用 "=" 号进行赋值,= 号的左边是变量,右边是变量的值,值的内容可以是任意数据类型


a = 123
b = "字符串"
c = 1002.4
d = a
e = b
f = c
x = a+c


想想看,我上面定义的这些变量,打印出来分别是些什么? 是不是和你想的一样?


python 双引号 替换 单引号 python双引号内变量_Python_06


变量的值也可以是变量,我前面说过它可以是任意数据类型

那么变量为什么叫变量呢?因为它的值在程序的运行过程中是可变的,让我们来举个例子说明


myname = '成都金城武'
print(myname)
myname = '成都吴彦祖'
print(myname)


以上这段代码我定义了一个变量名为myname,我们会注意到它会根据程序执行的顺序先打印金城武,再打印吴彦祖


python 双引号 替换 单引号 python双引号内变量_python 双引号 替换 单引号_07


这就是变量的意义所在,它随时可变

在这里需要注意的点是,变量如果没有被定义或者说没有被赋值,是不能直接使用的,系统会报错,假设我直接来这么一句

print(myname)


python 双引号 替换 单引号 python双引号内变量_字符串_08


系统会直接告诉我 myname这个变量未被定义(赋值),所以我们需要记住,任何变量,在使用它之前一定要给它赋值,就像我开始说的变量就像给一个人取名字,这个人的各种属性都可以用一个变量所代表,就像我们开始定义的myname变量是一个 成都金城武 的字符串,如果我们不用变量定义它,直接 print("成都金城武")

当然哦福阔斯,你想怎么样都行,问题是如果系统里要在不同的地方打印几百次这个字符串,是不是每次都要 print("成都金城武") ? 好吧,就算你说爷是杠头,就想怎么写,那也没问题。我还想再问如果我哪天品味变了,要把 "成都金城武" 换成 "成都吴彦祖",就是杠爷也要抠脑壳了,你得把这几百个地方挨个给我替换一遍?

所以如果我在程序开始定义好myname这个变量,然后在需要用到的时候 print(myname),哪怕要在程序几百个地方都要输出这个数据,当我想改变输出结果时,只需要在一个地方改变myname这个变量的值即可!

最后讲讲变量名的规则,简单的说就是

不能用数字开头,不能用所有的符号开头(下划线除外),不能用全角字符开头

所以到最后,我建议各位设置变量名时尽量以英文,拼音命名即可,取变量名时注意言之有物,不要随意取一个,回头自己都忘了,导致程序出现莫名其妙的错误即可

关于基本数据类型和变量的概念我先讲到这,其实还有很多东西我没讲透,不过不要紧,大家可以先消化一下本章节的内容,我们来日方长,长篇大论,论古说今,今天下课!!!