人生苦短,我学Python(一)

Python编程学习笔记

0.0 Hello World!

按照国际惯例,输出Hello World!

print("Hello World!")
Hello World!

1.1基础数据类型

1.1.1 变量

Python中对变量的使用是不需要提前进行定义和声明的,可以直接进行赋值操作。

massage = "Hello Juprter"
print(massage)
Hello Juprter

在Python程序编写的过程中可以随时对变量进行修改

massage = "Hello World!"
print(massage)
massage = "Hello Python! Hello Jupyter!"
print(massage)
Hello World!
Hello Python! Hello Jupyter!

在Python中命名变量名应尽量使用小写英文字母命名
当所编写的程序存在错误时,Python解释器会给出traceback
*在Jupyter中使用的是Ipython

#演示错误
massage = Hello!
print(masage)
  File "<ipython-input-4-6aa5afa64467>", line 2
    massage = Hello!
                   ^
SyntaxError: invalid syntax

1.1.2 字符串

字符串类型是python语言的基本数据类型之一,一般用双引号或单引号括住
以下是字符串类型的定义和对字符串字母类型的几个基本操作。

name = "Zhang san"
print(name.title()) #首字母大写
print(name.upper()) #所有字符大写
print(name.lower()) #所有字符小写
Zhang San
ZHANG SAN
zhang san

字符串类型的其他基本操作

first_name = "Zhang"
last_name = "San"
full_name = first_name+" "+last_name # "+" 可以直接连接字符串
print(full_name)
Zhang San
language1 = "   Python"
language2 = "C++    "
print(language1+"\t"+language2+"\n") #控制字符
print(language1.lstrip())            
print(language2.rstrip())
print(language1.strip()+language2.strip())
#去除多余空格 lstrip() rstrip() strip()
#l/r means left or right
   Python	C++    

Python
C++
PythonC++

1.1.3 数字

在Python当中可以直接使用数字进行计算,但在某些时候需要对数字类型进行适当的处理,将其转化为字符串的形式或保持其int的整型类型
例如下面的这个示例:

age = 23
message = "Happy "+age+"rd Birthday"
print(message)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-8-e9469db08d10> in <module>
      1 age = 23
----> 2 message = "Happy "+age+"rd Birthday"
      3 print(message)


TypeError: can only concatenate str (not "int") to str

这样的编写方式会出现报错,因为Python解释器会将23默认为int类型,而在print语句当中,我们将它以字符串类型写入语句,
所以会出现报错现象,在这样的情况下我们应该使用str()函数对int类型的数据进行处理,将其转换成字符串类型进行输出。

age = 23
message = "Happy "+ str(age)+"rd Birthday"
print(message)
Happy 23rd Birthday

在python程序编写过程中,python语言的发明者Tim Peters也提出了避繁就简的原则,如果在python当中引用this库
就会看到以下内容(一个小彩蛋)。

import this
The Zen of Python, by Tim Peters

Beautiful 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!

2.1列表

2.1.1 列表简介

列表是由一系列的元素构成的一个有特定顺序的元素集合,在某用意义上类似于C/C++当中的数组。

在Python当中,我们用“[ ]”来表示列表,用逗号隔开元素,列表内的元素可以是一类事物,也可以是之间毫无联系的元素。

players = ["Messi","Ronaldo","Neymar","Mbappe",5]
print (players)
['Messi', 'Ronaldo', 'Neymar', 'Mbappe', 5]

同时,我们也可以通过访问列表的方式来访问数组当中的元素,这样我们可以精确的选择访问特定的元素,得到的形式也更加的友好。

需要注意的是,对列表中元素的访问,序号排列是从0开始的,这也和C/C++当中的数组的访问方式相同。

但是在python当中还有另外的一种访问方式,就是使用例如“-1”这样的序号进行访问元素,这样的负数序号代表访问从后往前数的第几个元素。

我们也可以对列表内的元素直接进行相关的操作,或者新的信息的拼接。

players = ["Messi","Ronaldo","Neymar","Mbappe",5]
print(players[0])
print(players[-3].upper())
print(players[0]+" is the best football player in the world")
Messi
NEYMAR
Messi is the best football player in the world
players = ["Messi","Ronaldo","Neymar","Mbappe",5]
print(players[0].upper())
MESSI

2.1.2 修改、添加和删除元素

修改特定位置的元素,只需要对元素地址重新赋值即可。

players = ["Messi","Ronaldo","Neymar"]
print(players)
players[1] = "Wulei"
print(players)
['Messi', 'Ronaldo', 'Neymar']
['Messi', 'Wulei', 'Neymar']

在列表中添加元素,分为以下两种情况

  1. 在列表末尾添加元素
    使用 append() 方法,将想要添加的元素添加进列表当中。
  2. 在列表中的位置插入元素
    使用 insert() 方法,将想要添加的元素插入特定位置。
players = ["Messi","Ronaldo","Neymar"]
print(players)
players.append("Mbappe") #append()内的参数为(插入内容),插入位置默认为队列尾
print(players)
players.insert(1,"Wulei") #insert()内的参数为(插入位置,插入内容)
print(players)
['Messi', 'Ronaldo', 'Neymar']
['Messi', 'Ronaldo', 'Neymar', 'Mbappe']
['Messi', 'Wulei', 'Ronaldo', 'Neymar', 'Mbappe']

从列表中删除元素,有下列的集中情况

  1. 只删除列表中元素,而不要求有返回值(也就是说不要求知道所删除元素的值(value))
    使用del语句,可以删除特定位置的元素

  2. 删除列表中的元素,但要求有返回值(也就是说需要知道所删除的内容)
    使用 pop() 方法
    注意:pop()方法默认删除最后一个元素,但也可以通过传入参数自行定义删除特定位置的元素。

  3. 根据值(value)删除元素
    使用 remove() 方法

players = ["Messi","Ronaldo","Neymar","Mbappe","Wulei"]
#del for delete
del players[2]
print(players)

#pop for delete
pop_players = players.pop(-1)
print(pop_players)
print(players)

#remove for delete
players.remove("Messi")
print(players)
['Messi', 'Ronaldo', 'Mbappe', 'Wulei']
Wulei
['Messi', 'Ronaldo', 'Mbappe']
['Ronaldo', 'Mbappe']

2.1.3 列表的排序或整理

在列表的定义过程中,随着我们对列表内元素的添加、删除、修改等操作,列表内的元素可能是杂乱无序的,如果我们对列表内的元素整洁度有需求,
或者有时需要一个有序的形式输出,我们就需要对列表内的元素进行排序操作。

  1. 列表的永久性排序 sort()方法
    sort()方法会将列表内的元素位置发生实际的调换,所以这样的排序操作后,原本的元素顺序将无法恢复。
  2. 列表的临时排序 sorted()函数
    sorted()函数是将排序后的列表作为函数的返回值,而原本的列表中元素的顺序并未发生改变。
players = ["Messi","Ronaldo","Neymar","Mbappe","Wulei"]
print(players)
players.sort()
print(players)
['Messi', 'Ronaldo', 'Neymar', 'Mbappe', 'Wulei']
['Mbappe', 'Messi', 'Neymar', 'Ronaldo', 'Wulei']
players = ["Messi","Ronaldo","Neymar","Mbappe","Wulei"]
print(players)
print(sorted(players))
print(players)
['Messi', 'Ronaldo', 'Neymar', 'Mbappe', 'Wulei']
['Mbappe', 'Messi', 'Neymar', 'Ronaldo', 'Wulei']
['Messi', 'Ronaldo', 'Neymar', 'Mbappe', 'Wulei']

如果我们结束了一系列的元素输入工作,我们没有对列表内元素按字典序排序的需求,但我们需要得到一个目前列表内元素的倒序,
这个时候我们需要将整个列表内的元素位置反转。也就用到了**reverse()**方法
reverse()和sort()类似,都是直接对列表内元素的位置进行改变,但因为操作的类型不同,导致特性有些许不同,
reverse()是导致操作,所以一个列表连续做偶数次的reverse()方法就可以恢复到原有的顺序,
但一个无序列表一旦执行了sort()方法,它的原有顺序是无法再次恢复的

players = ["Messi","Ronaldo","Neymar","Mbappe","Wulei"]
print(players)
players.reverse()
print(players)
['Messi', 'Ronaldo', 'Neymar', 'Mbappe', 'Wulei']
['Wulei', 'Mbappe', 'Neymar', 'Ronaldo', 'Messi']

Tips Python中对语句、方法和函数的辨析

我们在学习python的过程中会发现,我们所用到的编程方法,在相关书籍的表达当中,会有表达上的不同。
我们常用的操作,有的被称之为语句,有的被称之为函数,还有一些被称之为方法。
这三者实际上是有很大的不同的。
语句
语句是我们学习Python最先接触到的,print("Hello World!")当中的print就是语句,语句在程序编写过程中可以直接被使用,相对来说不容易被混淆。
方法
方法一般是对某一数据类型进行的直接操作,会直接改变被操作对象,如sort()就属于方法,它直接改变了列表中元素的顺序,在Python当中,我们想要使用方法,需要用这样的形式进行编写list.sort(),最明显的特征就是变量名+“.”+方法名()
函数
函数是我们在C/C++中就接触过的解决问题的操作方式,在Python中,函数会对被操作对象进行操作后将操作结果作为返回值返回,这个返回值可以直接被 赋值给另一个变量,这整个操作过程中并不会改变原本的被操作变量本身,例如sorted(list),函数的最明显特征是方法名(变量名)


本文所在系列:Python编程学习笔记

Python编程学习笔记(一):数据类型;列表基础;函数、方法、语句辨析;
Python编程学习笔记(二):列表操作;判断语句(if);
Python编程学习笔记(三):字典;


写在文末的话

这是我第一次尝试着写长篇的博客,本文的讲解也忽略了一些比较基础的名词的解释,如果有问题或发现错误可以回复或私信博主,讲述的顺序主要是参照了图灵图书的《Python编程:从入门到实践》,推荐大家购买正版的纸质或电子版书籍。
本文主要采用Jupyter notebook编写,刚开始使用Jupyter notebook还在学习中, 日后有机会会写一篇有关编程工具的推荐博客或相关教程,如果对各位有帮助感谢点赞收藏。
转载请注明出处。

  • 18
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值