Python基础入门教学

  • 1 Python入门
    • 1.1 Hello world
    • 1.2 Python与Python的特点
    • 1.3 python的缺点
    • 1.4 python能做什么?
    • 1.5 python之禅
    • 1.6 行和缩进
    • 1.7 相关函数
    • 1.8 英文注解
  • 2 Python的基础知识
    • 2.1 变量
      • 2.1.1什么是变量?
      • 2.1.2 定义变量
      • 2.1.3 变量命名规则
      • 2.1.4 英文注解
    • 2.2 数据类型
      • 2.2.1 文本类型
        • 2.2.1.1 拼接字符串
        • 2.2.1.2 计算字符串的长度
        • 2.2.1.3 截取字符串
        • 2.2.1.4 负索引
        • 2.2.1.5 更新字符串
        • 2.2.1.6 修改字符串的大小写
        • 2.2.1.7 多行字符串
        • 2.2.1.8 相关函数

1 Python入门

1.1 Hello world

1、在最上面的“pythonProject”文件夹上右击,新建——Python包,创建一个名称为“1Python入门”的新Python包

2、在刚建好的“1Python入门”Python包上右击,新建——Python文件,创建一个名称为“1.1Hello world”的新Python文件。

3、在左边输入第一个代码

print('Hello world')

然后右击“运行”,或者直接用快捷键“Ctrl+shift+F10”

就可以看到下面出现了“Hello world”这几个字

4、第一次运行一个文件时,千万不要点右上角的运行按钮,因为无论怎么点,都只会运行上一个文件。

1.2 Python与Python的特点

  1. Python是一门编程语言,它只是众多编程语言中的一种。
  2. 语法简洁、优雅、编写的程序容易阅读。
  3. 跨平台,可以运行在Windows、Linux以及MacOS。
  4. 可移植。
  5. 易于学习。Python相较于C++、Java、JavaScript等语言要易于学习和掌握。
  6. 极为强大而丰富的标准库与第三方库,比如电子邮件,比如图形GUI界面。
  7. Python是一种解释型、面向对象的语言。
  8. 免费和开源。
  9. 可扩展性。可嵌入到C和C++语言,所以python也被称之为胶水语言。

1.3 python的缺点

  • 慢:相较于C、C++、Java,运行较慢

1.4 python能做什么?

(python几乎是万能的)

  1. 科学技术
  2. 人工智能
  3. 爬虫
  4. 大数据与数据分析(Spark)
  5. 自动化运维与自动化测试
  6. Web开发:Flask、Django
  7. GUI开发(图形用户界面开发)
  8. 机器学习:Tensor Flow
  9. 游戏开发
  10. 移动设备
  11. 嵌入式设备
  12. 胶水语言:混合其他如C++、Java等来编程。能够把其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起
    当你遇到问题时,随手拿起python,编写一个工具,这才是python正确的打开方式。

什么时候不应该用python?
python是解释执行,性能较低。因此,一些影响性能的功能可以使用C/C++/JAVA/GO去开发。

1.5 python之禅

在学习python之前,先要读一遍Tim Peters撰写的“Python之禅”,这是关于python编写的指导原则。
大家可以在解释器中输入import this,然后运行。

The Zen of Python, by Tim PetersBeautiful 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!

翻译:

Python之禅 by Tim Peters

优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

1.6 行和缩进

读完“Python之禅”我们知道Python的代码都十分的简洁,所以基本上每行都是一个明确的含义。
python中的缩进可以使用空格来实现。通常4个空格为一个缩进量,这个数量必须是严格执行的,因为如果错了,系统会报错。额外的缩进也会使系统报错。

1.7 相关函数

print() 函数将指定的消息打印到屏幕或其他标准输出设备上。

该消息可以是字符串,也可以是任何其他对象,该对象在写到屏幕之前会被转换为字符串。

1.8 英文注解

print 打印

2 Python的基础知识

2.1 变量

上面我们已经学会了写第一个Python代码,现在我们来改一下这个代码

message = "Hello world"print(message)

运行~
现在,下面出现的还是:Hello world

Q:现在这个代码和刚才的代码有何不同?
A:我们增加了一个变量:message

2.1.1什么是变量?

我们来拆解一下刚才的Python代码

message = "Hello world"

message是变量
Hello world是这个变量赋予的值
这个过程,就像是给货物贴上标签,值就是货物,而变量就是标签

2.1.2 定义变量

其实上面的代码就是定义变量的一个过程
变量可以直接赋值,不需要申明变量名及其类型(这个后面会说到)
定义变量只需一个“=”,就可。格式如下:

变量名 = value

例如:

number = 123

这行代码的意思就是:创建变量number并赋值为123
变量的赋值可以是数字,也可以是一串英文,也可以是中文,数字可以不用引号括起来,但是英文和中文必须用单引号或双引号括起来。
例如:

name = "张三"
name = "Alice"

2.1.3 变量命名规则

  • 变量名必须是一个有效的标识符;
  • 变量名不能使用Python中的保留字;
  • 变量名只能包含字母、数字和下划线;
  • 慎用小写字母i和大写字母O,因为容易被人看成是数字1和0;
  • 应选择有意义的、有描述性的单词作为变量名;
  • 首字母必须是英文,不能以数字开头;
  • 可以有短下划线"_",如a_1;
  • 不能含有空格;
  • 有大小写之分,如:a和A是两个不同的变量;

2.1.4 英文注解

value 值

2.2 数据类型

Python中的变量可以储存不同的数据类型,如下:

数据类型 名称
文本类型 str
数值类型 int, float, complex
序列类型 list, tuple, range
映射类型 dict
集合类型 set, frozenset
布尔类型 bool
二进制类型 bytes, bytearray, memoryview

如何才能知道一串字符到底是什么数据类型的?
可以使用 type() 函数来获取
例如:

x = 5
print(type(x))

输出:

<class 'int'>

对照上面的表格我们可以发现,int是数值类型。
下面我们一一介绍各个类型的含义及用法。

2.2.1 文本类型

文本类型也叫字符串str,在使用字符串时,需要用引号把它们括起来。
字符串可以是10个数字、26个大写英文字母、26个小写英文字母,也可以是中文。
例如:

a = "234"
b = "CNL"
C = "hello"
d = "你好"

字符串可以用单引号’ ‘,双引号" “,三引号”"" “”"、’’’ ‘’'来括起来,但所有的引号都必须是在英文输入法下输入。
例如:

a = 'abc'
b = "python"
c = """Welcome to python world!"""

但会有一些特殊的时候,比如:

txt = "I'm Susan."

这句话中,有一个“I am”的缩写,这种时候如果外面的引号是单引号就会报错。所以当字符串中已经有单引号时,外面就要用双引号括起来。
当出现多行,或需要换行的情况,我们可以使用三引号,例如我们需要打印一篇诗歌:

text = """
相思
王维 〔唐代〕红豆生南国,春来发几枝。
愿君多采撷,此物最相思。
"""
print(text)

输出:

相思
王维 〔唐代〕红豆生南国,春来发几枝。
愿君多采撷,此物最相思。

我们看到代码是怎么展示诗词的,打印出来也是怎么样的,三引号的作用就是为了展示多行文字。
字符串可以实现很多功能,如拼接、计算长度、截取、更新、格式化等。

2.2.1.1 拼接字符串

我们先看一个例子:

name = "小明"
age = "10岁"
print(name + age)

输出

小明10岁

大家可以看到,我用“+”这个运算符来连接多个字符串,这样的连接也叫字符串的拼接。

但是要注意,两个字符串的拼接,要注意字符串的类型。
比如,文本类型只能和文本类型拼接,不能和其他类型拼接。
还是用上面的代码举例:

name = "小明"
number = 10
age = "岁"
print(name + number +age)

输出会报错:

Traceback (most recent call last):File "C:\Users\Administrator\PycharmProjects\pythonProject\2Python的基础知识\2.2.1.1拼接字符串.py", line 9, in <module>print(name + number +age)
TypeError: can only concatenate str (not "int") to str

我们看到最后一句话,说的是:只能str和str连接,int不行。
上面我有提到过,int是数值类型,所以不能和文本类型拼接。
如果要拼接,只能把数值类型转换程文本类型,最简单的方法就是把数值用引号括起来。

大家一起试下:

name = "小明"
number = "10"
age = "岁"
print(name + number +age)

输出:

小明10岁

这样就成功了。

2.2.1.2 计算字符串的长度

数字、英文、中文、标点符号等,这些字符所占字节数各不同,想要计算它们的长度,就要先了解这些字符所占的字符数。
我们可以用len()这个函数来进行计算。
比如:

str1 = "人生苦短,我用python!"
length = len(str1)
print(length)

输出:

14

我们可以自己数一数, “人生苦短,我用python!”,引号里面一共有14个字符。在默认的情况下,len()函数不区分数字、中文、英文、标点符号,把所有的字符都认为是一个。
但是我们都知道中文和英文所占的字节数在电脑中是不一样的,中文一般是2位,英文是1位。
而在Python开发中,有UTF-8、GBK、GB2312-80、Big-5、GB18030-2000等173种编码,使用不同的编码,会造成汉字所占字节数的不同。如采用UTF-8,汉字占3个字节,用GBK或GB2312,汉字占2个字节。在实际开发中,会有计算具体字节数的需求,所以,大家要知道一下。
我们还是用上面的代码举例,如果要计算采用UTF-8编码时所占的字节数,只需用encode()这个函数,如下:

str1 = "人生苦短,我用python!"
length = len(str1.encode())
print(length)
28

如图所示,UTF-8编码,每个汉字占3个字节:

如果要计算采用GBK编码时所占的字节数,需要在encode()的基础上添加“gbk”,如下:

str1 = "人生苦短,我用python!"
length = len(str1.encode('gbk'))
print(length)
21

如图所示,GBK编码,每个汉字占2个字节:

2.2.1.3 截取字符串

截取字符串往往是用在要选取某一段字符串时使用。截取字符串我们可以使用切片方法,或者直接使用索引。
例如:

var1 = 'Hello World!'
var2 = "Python你好!"print ("var1[0]: ", var1[0])
print ("var2[3:7]: ", var2[3:7])

输出:

var1[0]:  H
var2[3:7]:  hon你

var1[0]的意思是要截取序号为0的字符。
var2[3:7]的意思是要截取从序号为3的字符,到序号为7前一个的字符,也就是不包括序号7,只到序号6的字符。

注意:
1、python中所有的序列都是从0开始的,所以,第一个字母的序列就是0。
2、每一个字符都占一个位置,无论是,数字、字母,还是中文,都只占一个位置。
3、切片的格式为[start:end:step]
4、start:表示想要截取的第一个字符的索引(包括该字符),如果不指定,就默认是0。
5、end:表示想要截取的最后一个字符的索引(不包括该字符),如果不指定,就默认是整个字符串的长度。
6、step:表示切片的步长,也就是跨度,比如step是1,就是一个一个的截取,如果step是2,那就是两个两个的截取,如果省略,就默认是1,那么最后一个冒号也可以省略。
以step为2举例:

var2 = "Python你好!"
print ("var2[1:7:2]: ", var2[1:7:2])

输出

var2[1:7:2]:  yhn

另外两种情况我也给大家写一下:

var1 = 'Hello World!'
var2 = "Python你好!"
print("var1[6:]:",var1[6:])
print("var2[:5]:",var2[:5])

输出:

var1[6:]: World!
var2[:5]: Pytho

2.2.1.4 负索引

上面截取字符串的方式,是一种索引方式,也是正向索引。当然,我们也可以反向索引。反向索引就是负索引。
负索引一般是用在字符串很长,且只想截取最后一些字符的情况下。
例如:
Human life is of inestimable value.
这句话很长,如果我只想要最后一个单词,就可以用负索引。

a = "Human life is of inestimable value."
print(a[-6:-1])

输出

value

大家可以自己数下,value的v在这句话的最后第6位,所以[]里的第一个数字是-6,而e在最后第2位,所以[]里的第二的数字是2-1再加负号,因为最后的句号序列号是0。
其他大家把字符串想象成一个坐标就会比较好理解,正索引是从0开始向右数,负索引是从0开始向左数。

2.2.1.5 更新字符串

所谓的更新字符串,就是将全部或部分字符串替换成另一段字符串。
例如:

var1 = 'Hello World!'print (var1[:6] + 'Python')

输出

Hello Python

我们看到上面的“World”被替换成了“Python”。

2.2.1.6 修改字符串的大小写

修改字符串大小写在Python中很常见,比如说人名、句首等。
我们先来改一个人名:

name = "alice forest"
print(name.title())

输出:

Alice Forest

这里我们用到了一个方法叫title(),title()的意思呢就是把每个单词的第一个字母都变成大写字母。
关于方法的含义,我找到了比较专业的解释:

Python 有一组可以在字符串上使用的内建方法。
注释:所有字符串方法都返回新值。它们不会更改原始字符串。

方法是Python可对数据执行的操作。

在name后面有一个“.”,我们可以这个“.”理解成执行,那么name.title()的解释就是“让Python对变量name执行title()方法。”
每个方法后面都会有(),通常是需要额外的信息来完成工作的。但title()不需要额外的信息,所以后面的()是空的。
再来改一个句首:

txt = "hello,welcome to my world!"
print(txt.capitalize())

输出:

Hello,welcome to my world!

capitalize() 就是修改字符串的第一个字母为大写。
关于字符串的内建方法有很多,抽空我会单独写一篇来讲。这里先简单介绍一些常用的、简单的方法。

2.2.1.7 多行字符串

遇到一大段文字时,在屏幕中会以多行显示,这时我们需要用三引号来表示这是一个整体。
我从Python的官网复制了一段文字,用来演示一下:

a = """Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open."""
print(a)

输出:

Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open.

我们可以看到文字全部被打印出来了,而且原本换行的地方也进行了换行,可以说三引号的作用就是,原本是什么样,打印出来就是什么样。

2.2.1.8 相关函数

len() 函数返回对象中项目的数量。
当对象是字符串时,len() 函数返回字符串中的字符数。

encode() 方法使用指定的编码对字符串进行编码。如果未指定编码,则将使用 UTF-8。

title() 方法返回一个字符串,其中每个单词的第一个字符均为大写。比如标题。
如果单词包含数字或符号,则其后的第一个字母将转换为大写字母。

capitalize() 方法返回一个字符串,其中第一个字符为大写。

后续更新:
Python基础入门知识(2)
Python基础入门知识(3)
Python基础入门知识(4)
Python基础入门知识(5)
Python基础入门知识(6)

Python基础入门知识(1)相关推荐

  1. Python基础入门知识(2)

    接前面的文章: Python基础入门知识(1) Python基础入门教学 2 Python的基础知识 2.2 数据类型 2.2.2 数值类型 2.2.2.1 整数 2.2.2.2 浮点数 2.2.2. ...

  2. 超完整 Python基础入门知识教程

    本书旨在帮助Python开发人员发现该语言和相关库的突出特性,并编写简单.流畅.易于阅读和易于维护的代码.特别是生成器.属性描述符(ORM的键)和Python表达式的对象在数据库处理过程中的具体应用: ...

  3. Python基础入门知识(11)

    接前面的文章: Python基础入门教学 2 Python的基础知识 2.15 文件和异常 2.15.4 存储数据 2.15.4.1 使用json.dump()和json.load() 2.15.4. ...

  4. Python基础入门知识实例【基础算法】

    基础知识很简单却非常重要,有兴趣的伙伴可以看我以前的两篇基础文章: Python基础知识汇总https://blog.csdn.net/weixin_41896770/article/details/ ...

  5. 【学习笔记】Python基础入门知识笔记,万字攻略带你走进Python编程

    ​ Python笔记,由此开始吧 本文是笔者在学习Python过程做的笔记总结,将简要讲述Python的基础知识,内容清晰易理解,相信你也能轻松的学会Python的入门基础知识内容.同时也希望这篇文章 ...

  6. Python基础入门知识

    Python 编译环境的安装 首先安装Python的官方编译环境:Python3.7, 点击Add ... to Path . 点击下一步完成安装. 开始-> 运行 - > cmd -&g ...

  7. 学python需要什么基础知识-学习Python需要知道哪些基础入门知识?

    众所周知,Python以优雅.简洁著称,入行门槛低,可以从事Linux运维.Python Web网站工程师.Python自动化测试.数据分析.人工智能等职位!就目前来看,Python就业前景广阔.很多 ...

  8. 全站最全面的Python 基础入门必备知识大全,学完即就业!【建议收藏仔细学习】

    前言: Python作为21世纪最火的编程语言,市面上各种学习视频层出不穷,关于Python的学习氛围也逐渐浓厚!!最近一段时间越来越多的知友们在私信我,希望我出一期python基础入门的内容,肝了N ...

  9. 万字长文爆肝Python基础入门【巨详细,一学就会】

    目录 数据的名字和种类--变量和类型 初探数据种类 数据类型 数值运算 比较运算 变量和赋值 变量的好处 用赋值更新变量 变量和数据类型的关系 总结 数据类型 数值运算 数值比较 变量和赋值 一串数据 ...

  10. python免费入门手册-Python 基础入门教程

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. <Python 基础入 ...

最新文章

  1. 用扫描的方式实现Rosenfeld and Pfaltz提出的距离变换!
  2. linux下防火墙加白名单
  3. sftp get服务器无文件会抛异常,sftp 异常,有遇到的吗
  4. Redis详解——常用命令总结(完善中)
  5. 四川传媒学院计算机应用技术专业,2017年四川传媒学院开设哪些专业(高职/专科)...
  6. gitlab protected branch
  7. html制作我和我的家乡,《我和我的家乡》怎么参与投资?投资流程是什么?
  8. 生存分析——快手的基于深度学习框架的集成⽣存分析软件KwaiSurvival(一)
  9. 30岁的程序员:不拼体力的我们应该关注什么?
  10. jquery中object对象循环遍历的方法
  11. 检测输入数据中奇数和偶数的个数
  12. 软件附加截图功能(QQ,360浏览器)
  13. sql 根据日期模糊查询SQL Server dateTime类型 模糊查询
  14. hdu 5234 - Happy birthday DP
  15. requirejs的用法
  16. 面了一个4年经验的测试工程师,自动化都不会也要15k,我真是醉了...
  17. 全网最精减、安装最简单、无头疼配置的Katago教程,大小才168M,职业水平,散仙订制版
  18. 如何从根本上克制自己在电脑上刷B站,专注学习(hosts文件)
  19. 几种常见的开发语言对比
  20. meta标签详解(meta标签的作用)///////////////////////////转

热门文章

  1. 微信公众号 网页授权获取
  2. 【王道】计算机组成原理第三章存储系统(三)
  3. 以一次失败的沟通,来聊聊技术人员沟通中常见的几个问题
  4. windows10_小屏幕显示不可调整的大窗口(老软件)/widows字体大小调整
  5. Maven Resources Plugin的Filtering功能的Bug
  6. springboot农机装备生产车间物料配送车辆调度管理系统毕业设计源码181710
  7. 防摸鱼小软件——鼠标键盘检测器
  8. 微信小程序中map地图中取消地点图标文字(干净地图)
  9. Openwrt Web gui LUCI 流程浅析
  10. 民数记研读3——于宏洁