Python语言快速入门(下)

前言

    本图文是本期图文的下篇,可能篇幅较长大概有10000多字,很高兴您能阅读,也感谢您的关注支持!这期下篇主要还是接着上次的内容继续,在上篇中我介绍了关于Python环境的安装、基本数据处理、输入输出以及运算符与表达式等内容,如果您需要阅读上期请访问:Python语言快速入门(上),本次下篇则主要围绕流程控制、其他常用的数据类型以及函数三个方面进行阐述,话不多说,这就开始了!

1 流程控制

    Python语言包含3种流程控制结构,即if、for 以及 while。

1.1 if 语句

    if 语句语法如下:

if 条件表达式1:
    程序语句区块1(注意缩进)
elif 条件表达式2:
    程序语句区块2
else:
    程序语句区块3

    在Python语句中,当指令有“:”(英文冒号)时,下一行的程序代码就必须缩进,否则无法正确的解释或编译通过,默认缩进4个空格,我们又可以使用键盘上的Tab键或空格键来实现缩进效果,看一个栗子吧!

month=int(input('请输入月份: '))    
if 2<=month and month<=4:
    print('充满生机的春天')    
elif 5<=month and month<=7:
    print('热力四射的夏季')
elif month>=8 and month <=10:
    print('落叶缤纷的秋季')
elif month==1 or (month>=11 and month<=12):
    print('寒风刺骨的冬季')
else:
    print('很抱歉没有这个月份!!!')

# 运行结果
# 请输入月份:4
# 充满生机的春天

    另外,在其他程序语言设计中,常以switch和case语句来控制复杂的分支流程,在Python语言中,没有switch语句,但我们人可以使用if语句来实现同样的功能,例如;

print('1:80以上,\n2:60~79,\n3:59以下')
ch=input('请输入等级分数: ')
#条件语句开始
if ch=='1':
    print('继续保持!')
elif ch=='2':
    print('还有进步空间!!')
elif ch=='3':
    print('请多多努力!!!')
else:
    print('error')

# 运行结果
# 1:80以上,
# 2:60~79,
# 3:59以下
# 请输入等级分数: 2
# 还有进步空间!!

1.2 for 循环

    for循环又称计数循环,是一种可以重复执行固定次数的循环,语法如下:

for item in sequence: 其中sequence是一个列表或者一个字符串。
    程序语句区块
# 以下代码可有可无,为附属代码,一般不用
# 在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行。
else: 
    程序语句区块

    Python提供了range()函数来搭配使用,主要功能是建立整数序列,先让我们了解一下range()函数:

range([起始值], 终止条件, [步长值])
# 起始值:默认为0,可以省略
# 终止条件:必须的参数,不可省略
# 步长值:计数器的增减值,默认为1,可以省略
  • range(5)代表索引值从0 开始,输出5个元素,即0,1,2,3,4共5个元素,注意不包含5!!

  • range(1, 6)代表索引值从1开始,到索引编号5结束,同样不包含6,即1,2,3,4,5共5个元素。

  • range(2, 10, 2)代表索引值从2开始,以步长2前进,到索引编号10前面结束,即2,4,6,8公司各元素。

    下面是几个栗子:

## 1 ##
for i in range(5):
    print(i)
# 运行结果
# 0
# 1
# 2
# 3
# 4

## 3 ##
for i in range(1, 6):
    print(i)
# 运行结果
# 1
# 2
# 3
# 4
# 5

## 3 ##
for i in range(2, 10, 2):
    print(i)
# 运行结果
# 2
# 4
# 6
# 8

    初步掌握了for循环,我们再看一个综合一点的栗子:

sum=0
number=int(input('请输入整数: '))
  
#递增for循环,从小到大打印出数字 
print('从小到大排列输出数字:')
for i in range(1,number+1):
    sum+=i  #设置sum为i的和 
    print('%d' %i,end='')
    #设置输出连加的算式 
    if i<number:
        print('+',end='')
    else:
        print('=',end='')
print('%d' %sum)

sum=0
#递减for循环,从大到小打印出数字 
print('从大到小排列输出数字:')
for i in range(number,0,-1):
    sum+=i 
    print('%d' %i,end='')
    if i<=1:
        print('=',end='')
    else:
        print('+',end='')
print('%d' %sum)

# 运行结果
# 请输入整数: 8
# 从小到大排列输出数字:
# 1+2+3+4+5+6+7+8=36
# 从大到小排列输出数字:
# 8+7+6+5+4+3+2+1=36

1.3 while 循环

    while循环的条件表达式是用来判断是否执行循环的测试条件,当条件表达式为False时,就会结束循环的执行。其语法如下:

while 条件表达式:
    要执行的程序语句
# 以下代码为附属语句,一般不用
# 下面与while对应的else指令也是一个选择性指令,可加也可以不加。一旦条件表达式不否和,就会执行else区块里面的程序语句。
else:
    不符合条件所要执行的程序语句

    看个栗子:

product=1
i=1
while i<6:
    product=i*product
    print('i=%d' %i,end='') 
    print('\tproduct=%d' %product)
    i+=1
print('\n阶乘的结果=%d'%product)

# 运行结果
# i=1 product=1
# i=2 product=2
# i=3 product=6
# i=4 product=24
# i=5 product=120

# 阶乘的结果=120

    在其他程序语言中,存在do while语句,实现必须执行循环中的语句一次的效果,但Python语言中不存在这样的语句,但我们仍可以通过下面的实例实现这种效果:

sum=0
number=1
while True:
    if number==0:
        break
    number=int(input('数字0为结束程序,请输入数字: '))
    sum+=number
    print('目前累加的结果为: %d' %sum)

# 运行结果
# 数字0为结束程序,请输入数字: 85
# 目前累加的结果为: 85

# 数字0为结束程序,请输入数字: 12
# 目前累加的结果为: 97

# 数字0为结束程序,请输入数字: 4
# 目前累加的结果为: 101

# 数字0为结束程序,请输入数字: 419
# 目前累加的结果为: 520

# 数字0为结束程序,请输入数字: 0
# 目前累加的结果为: 520

 


 

2 其他常用数据类型

    其他常用的类型包括string字符串、tuple元组、list列表、dict字典等,为了方便存储多项相关的数据,大部分的程序设计语言(例如C/C++语言)会以数组(array)的方式处理。类似与数组的结构,在Python语言中被称为序列(Sequence),序列类型可以将多项式数据集合在一起,通过“索引值”存取序列中的数据项。在Python语言中,string字符串、list列表、tuple元组都属于序列的数据类型。

2.1 string 字符串

    将一连串字符放在单引号或双引号中括起来就是一个字符串(string),如果要将字符串赋值给特定变量,就可以使用“=”赋值运算符,例如:

str1 = ""  # 空字符串
str2 = "L" # 单字符串
str3 = "Happy" # 字符串,可以使用单引号也可双引号

    另外,内建函数str()可以将数值数据转化为字符串,例如:

str()   # 输出空字符串''
str(123)  # 将数字123转化为字符串"123"

    要串接多个字符串,也可以使用“+”符号,例如:

print('Xi\'An JiaoTong Uni' + 'versity') # 注意转义符 \'
# Xi'An JiaoTong University

    字符串的索引值具有顺序性,如果要获取单个字符或子字符串,我们就可以使用[]运算符,可以参考下表的说明:

运算符功能说明
s[n]按指定索引值获取序列的某个元素,其中n可为负数,表示倒数,例如-1代表序列最后一个元素
s[n:]按索引值从n开始到序列的最后一个元素
s[n:m]获取索引值从n到m-1的若干元素 即左闭右开
s[:m]从索引值0开始到索引值m-1结束
s[:]表示全体元素
s[n:m:k]表示索引值从n到索引值m-1结束,以k为步长
s[::-1]将整个序列的元素反转

    来看一些栗子吧

str1 = "0123456789"
print(str1[5])
# 结果: 5      # 该结果其实为字符串‘5’,以下同样
print(str1[5:])
# 结果: 56789 
print(str1[5:8])
# 结果: 567
print(str1[:5])
# 结果: 01234 
print(str1[:])
# 结果: 0123456789 
print(str1[3:9:2])
# 结果: 357   # 注意不包括元素9 
print(str1[-1])
# 结果: 9
print(str1[::-1])
# 结果: 9876543210

    字符串的方法很多,下面介绍几个实用的方法。

(1) len()

功能是获取字符串的长度。

print(len('Hello_Python'))
# 12

(2) count()

功能是找出子字符串出现的次数。

msg = 'Never put off until tomorrow what you can do today.'
print(msg.count('e'))
# 2

(3) split()

功能是可根据sep设置字符来分割字符串。

data = 'XJTU HFUT THU TJU ZJU NJU'
print(data.split()) # 输出将是一个列表,默认以空格分割
# ['XJTU', 'HFUT', 'THU', 'TJU', 'ZJU', 'NJU']
data1 = 'XJTU/HFUT/THU/TJU/ZJU/NJU'
print(data1.split(sep = '/'))
# ['XJTU', 'HFUT', 'THU', 'TJU', 'ZJU', 'NJU']

# 当然这里的sep也可以省略,像这样,
print(data1.split('/'))
# ['XJTU', 'HFUT', 'THU', 'TJU', 'ZJU', 'NJU']

(4) find()

功能是检测字符串是否包含了子字符串str,并返回其位置,注意字符串的索引值是从0开始的。

msg = 'Python is easy to learn'
print(msg.find('easy'))
# 10
print(msg.find('on'))
# 4

(5) upper()和lower()方法

功能是进行大小写字母转换。

msg = 'Python is Easy To Learn'
print(msg.upper()) # 将小写字母转换为大写
# PYTHON IS EASY TO LEARN
print(msg.lower()) # 将大写字母转换为小写
# python is easy to learn

2.2 list 列表

  • 列表是 Python 中的最基本的数据结构;

  • 方括号中用逗号分隔元素来创建一个列表;

  • 列表中的某个元素可以通过使用方括号中的索引来访问。

    列表是一种以中括号“[]”存放不同数据类型的有序数据类型。活不多说,先看几个列表栗子哈:

list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 3, 7, 4, 5]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

    当然列表也可以是空列表,也可以包含不同的数据类型或者其他子列表,例如,

data_list0 = []   # 空的列表
data_list1 = ['Marry', [78, 21], 'Eric', '12']

    列表是一种可变的序列类型,列表中的每一个元素都可以通过索引来取得其值。因此在数据结构中的数组(array),在实现上常以列表的方式来表示数组的结构。在列表中增加元素,可通过append()方法实现。如果要获取列表的长度,就可以使用len()函数。list类型可以使用[]运算符来获得列表的元素。

(1) 列表嵌套在其他列表中

number = 3
things = ["string", 0, [1, 2, number], 4.56]
print(things[1])
print(things[2])
print(things[2][2])
# 结果:

0
[1, 2, 3]
3

(2) 列表操作

    要查找某个值是否在列表中,可以使用 in 运算符。如果值在列表中出现一次或多次,则返回 True,否则返回 False。

words = ["spam", "egg", "spam", "sausage"]
print("spam" in words)   
# True
print("egg" in words)    
# True
print("tomato" in words) 
# False

    in 运算符也用于确定一个字符串是否是另一个字符串的子字符串。

# 要确定某个值是否不在列表中,可以使用 not 操作符:
# 以下两种方式均可
nums = [1, 2, 3]
print(not 4 in nums)  
# True
print(4 not in nums)  # 一般采用这样
# True
print(not 3 in nums)  
# Flase
print(3 not in nums)  # 一般采用这样
# Flase

(3) 列表函数

append 方法

    append 是列表类的一个方法,可以使用 append 方法将一个元素添加到现有列表的末尾。

nums = [1, 2, 3]
nums.append(4)
print(nums)
# 结果:
[1, 2, 3, 4]

len()函数

    要获取列表中的项目数量,可以使用 len 函数。

nums = [1, 3, 5, 2, 4]
print(len(nums))
#结果:5

    与 append 方法不同,len 是一个正常的函数,而不是一个方法。这意味着它写在被调用的列表之前。

insert 方法

    insert 方法与 append 相似,不同之处在于它允许您在列表中的任何位置插入一个新元素,而不仅仅是在最后。

words = ["W3Cschool", "Good"]
index = 1
words.insert(index, "is")
print(words)
#运行结果:
['W3Cschool', 'is', 'Good']

index 方法

    使用index 方法会找到列表项的第一个匹配项并返回它的索引,如果该项目不在列表中,则会引发 ValueError。

letters = ['p', 'q', 'r', 's', 'p', 'u']
print(letters.index('r'))
print(letters.index('p'))
print(letters.index('z'))
# 结果:
2
0
ValueError: 'z' is not in list

    列表还有一些很有用的功能和方法:

函数/方法功能
max(list)返回具有最大值的列表元素
min(list)返回具有最小值的列表元素
list.count(obj)返回一个元素在一个列表中出现的次数
list.remove(obj)从列表中删除一个元素
list.reverse()颠倒列表中的元素的顺序

2.3 tuple元组和dict字典

    元组(tuple)也是一种有序的数据类型,它的结构和列表相同,列表是以中括号“[]”来存放元素的,但是元祖却是以小括号"()"来存放元素的。列表的元素位置和元素值都可以改变,但元组中的元素不能任意更改位置以及它的内容值。好了,来看几个栗子:

tup1 = ('XJTU', '12C', 47)
tup2 = 'XJTU', '12C', 47   # 也可以不带圆括号,一般还是带上比较好一些

    字典(dict)存储的数据为“键(key)” 与“值(value)”所对应的数据。字典(dict)和列表(list)、元组(tuple)等序列类型有一个很大的不同点,字典中的数据是没有顺序性的,他是使用“键”来查询“值”的。除了使用大括号“{}”来产生字典外,也可以使用dict()函数,或者先创建空的字典,在使用[]运算符以键设值。

    修改字典的方法必须针对“键”来设置该元素的新值。如果要新增字典的“键值”对,只要加入新的“键值”即可。和上面一样,来看几个栗子:

# 新建一个字典
dic = {'chinese':96, 'math':89, 'english':95}

print(dic)
# {'chinese':96, 'math':89, 'english':95}

print(dic['math'])
# 89

dic['math'] = 100  # 修改键值
print(dic)
# {'chinese':96, 'math':100, 'english':95}

dic['subject_Num'] = 3   # 新增键值
print(dic)
# {'chinese':96, 'math':100, 'english':95, 'subject_Num':3}

2.4 set集合

    集合(set)是一个无序的不重复元素序列。

  • 可以使用大括号{}或者set()函数创建集合;

  • 注意集合里面的元素不会重复的;

  • 创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。

    直接看几个实例,写不动了

>>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)          # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket     # 快速判断元素是否在集合内
True
>>> 'crabgrass' in basket
False

# 下面展示两个集合间的运算.

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  
{'a', 'r', 'b', 'c', 'd'}
>>> a - b             # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b             # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b             # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b             # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}

    另外也可以向集合中添加元素,我们采用add()方法。

>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}

    对于集合的操作还有很多方法,由于这里是入门学习,不在展开,望读者谅解


 

3 函数(Function)

    函数可以视为一段程序语句的集合,并且给予一个名称来代表它,当需要时再进行调用即可。Python提供了功能强大的标准函数库,这些函数库除了python自带的软件包,还有第三方开发的函数。所谓软件包,就是多个函数的集合,它可以通过import语句来引用,如果不太明白也不要紧,后面我们来看几个栗子你就基本明白了哈!

下面这些都是抄的,别人也写的很好,做了一些删减,实在写不动了,就搬过来了,哈哈!

https://www.runoob.com/python3/python3-function.html

3.1定义一个函数

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。

  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

  • 函数内容以冒号 : 起始,并且缩进。

  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

# 语法
# Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):
    函数体
# 默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。

# 实例
# 让我们使用函数来输出"Hello World!":

def hello():
    print("Hello World!")

hello() # 调用函数
# Hello World!

    更复杂点的应用,函数中带上参数变量:

#比较两个数,并返回较大的数:

def max(a, b):
    if a > b:
        return a
    else:
        return b
 
a = 4
b = 5
print(max(a, b))
# 以上实例输出结果:
5

    计算面积函数:

# 计算面积函数

def area(width, height):
    return width * height
 
def print_welcome(name):
    print("Welcome", name)
 
print_welcome("Runoob")
w = 4
h = 5
print("width =", w, " height =", h, " area =", area(w, h))
# 以上实例输出结果:

Welcome Runoob
width = 4  height = 5  area = 20

3.2 函数调用

    定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

    这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

    如下实例调用了 printme() 函数:

# 定义函数
def printme( str ):
   # 打印任何传入的字符串
   print (str)
   return
 
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")
以上实例输出结果:

我要调用用户自定义函数!
再次调用同一函数

3.3 return语句

    return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。之前的例子都没有示范如何返回数值,以下实例演示了 return 语句的用法:

# 可写函数说明
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print ("函数内 : ", total)
   return total
 
# 调用sum函数
total = sum( 10, 20 )
print ("函数外 : ", total)
# 以上实例输出结果:

函数内 :  30
函数外 :  30

3.4 那这部分我再补充一些

    调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值:

#可写函数说明
def printinfo( name, age = 35 ):
   # "打印任何传入的字符串"
   print ("名字: ", name)
   print ("年龄: ", age)
   return
 
#调用printinfo函数
printinfo( age=50, name="runoob" )
print ("------------------------")
printinfo( name="runoob" )
#以下实例输出结果:

名字:  runoob
年龄:  50
------------------------
名字:  runoob
年龄:  35

    另外也可以引用外部函数,通过import来实现导入,在这里不在赘述,仅给出一个实例吧!例如导入numpy库:

>>>import numpy
# 却出现了以下错误结果,说明没有numpy该模块,不要担心,我们来下载导入
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'

    不用怕,我们启动CMD命令窗,快捷键:win+R,然后输入cmd回车即可。一点提示了:这里win键就是键盘上空格键左边第二个按键,键上面有个像窗户的图标,哈哈!上面的错误显示缺少numpy库,我们直接输入pip install numpy即可,如下图所示:

这里我想说的是有的第三方库由于下载源在国外,所以推荐更改下载源,以便后面快速下载,当然现在入门学习也可以不用,记住pip install **就行了,如何更改下载源,请您访问:

https://blog.csdn.net/wls666/article/details/95456309

完成之后,下来我们开始使用

# 实现两个向量点积
import numpy as np

a = np.array([1,2])
b = np.array([11,12])
print(np.dot(a,b))
# 35

函数这部分写的可能不太好,大家有什么疑问,欢迎评论留言交流!

4 结束语

    本期下篇就写到这里了,介绍了流程控制、其他常用的数据类型以及函数的使用,到目前为止,本期Python语言快速入门就结束啦,后面可能会进行相应细节知识的补充,以及Python语言的应用。此外在Python语言中类(class)这个概念也很重要,后面有时间在做以补充,完成了这些理论知识学习后,我们就可以开始软件设计以及别的方面应用。感谢你的阅读,欢迎点赞和分享支持!

更多内容可以关注我的微信公众号:我的学习交流小平台

了解一下我哈:关于我(About Me!)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sokedev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值