python零基础到入门 |精简干练,记录小白学习日常

写在前面:本文作者自学python笔记,持续更新…主要参考Eric Matthes所著的《python编程:从入门到实践》

关于python:

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  • **Python 是初学者的语言:**Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

大多数python程序可以直接从编译器运行,但解决的问题比较复杂时,可能需要从终端运行。

cd到对应路径后,在对应文件夹执行:
python hello_world.py

第一部分:基础概念

变量命名规则:

1.变量名只能包含字母、数字、下划线,但不能以数字开头。

2.变量名不包含空格

3.不能有python关键字和函数名

4.最好简短且具有描述性

5.少些小写l和大写O,像1和0

一些py常用

  1. python使用方法修改字符串的大小写。
name = "ada.love"
print(name.title())
print(name.upper())
print(name.lower())
  1. python使用加号(+)合并拼接字符串

  2. 使用制表符或换行符添加空白(增加易读性)

制表符:\t

换行符:\n

>>>print("L:\n\tpython\n\tC\n\tJS")
结果:
    python
    C
    JS
  1. 删除空白:

删除字符串末尾空白用方法rstrip()

删除字符串开头空白用方法lstrip()

删除字符串两端空白用方法strip()

格式:字符串.rstrip()

  1. print不一定非要加括号,也可以用引号和双引号,当用括号时,print被看成函数。

  2. 整数运算:加减乘除(+ - * /),乘方(**),修改运算顺序用括号。

  3. 带小数的都是浮点数。

  4. 使用str()函数将非字符串表示为字符串

  5. python的相等(==)区分大小写

  6. 检查条件:

and 同时满足所有条件

or 满足一个条件

in 特定值已经包含在列表中

not in 特定值不包含在列表中

另:条件测试使用if-else,多重条件测试使用if-elif-else语句

  1. 注释:
#句注释

'''段注释'''

用户输入

使用函数input()让用户进行输入,函数input() 让程序暂停运行,等待用户输入一些文本,获取用户输入后,Python将其存储在一个变量中,以方便使用。函数input() 接受一个参数:即要向用户显示的提示或者说明,让用户知道该如何做。

示例:

message = input("Tell me something, and I will repeat it back to you: ")
print(message)

列表

列表:由一系列按特定顺序排列的元素组成,其中的元素可以是任何东西,元素之间可以没有任何关系。

在python中,用方括号[]来表示列表,并用逗号分隔其中的元素。

格式:

bicycles = ['treck','cannondale','ard','specail']
print(bicycles)

访问列表元素:给出 列表名称[索引] 即可:print(bicycle[0])

索引从0开始,当你请求获取列表元素时,Python只返回该元素,而不包括方括号和引号,例如:treck

增删改查:

cicycles.append('aaa')  //列表末尾增加一个叫aaa的元素

cicycles.insert(1,'bbb') //在列表第二个位置插入元素bbb

del cicycles[0] //删除列表第一个元素,此方法可删除任意位置的元素

remove和pop也能删除列表元素,pop用于删除列表中任意位置元素,并让你能够接着使用它
first_owned = motorcycles.pop(0)

remove是根据值删除列表中的元素
motorcycles.remove('ducati')

若要修改列表中的元素,重新定义即可,例如:

bicycle[3] = 'panda'

一些其他对列表的操作:

  1. 使用sort()方法对列表进行永久性排序

  2. 使用sorted()方法对列表进行临时排序

  3. 使用reverse()反转列表元素的排序

  4. 使用函数len()得到列表的长度

  5. 访问列表的最后一个元素可以使用索引-1,如AAA[-1](当列表为空时会返回错误)

对列表进行切片:

切片是指对列表的部分元素进行操作,下面进行示例:

players = ['charles', 'martina', 'michael', 'florence', 'eli'] 
print(players[0:3])
//输出结果:['charles', 'martina', 'michael']

如果你没有指定第一个索引,Python将自动从列表开头开始;

如果没有指定第二个索引,python会让切片终止于列表末尾。

负数索引返回离列表末尾相应距离的元素,

格式:players[-3:]

复制列表时,可创建一个包含整个列表的切片,同时省略起始索引和终止索引([:] )即可。

示例:friend_foods = my_foods[:]

元组

元组:不能修改的列表被称为元组,使用圆括号,定义元组后也可以使用索引来访问其元素,就像访问列表一样。(修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值。)

例:A = (200,50)

元组的索引也是从0开始,A[0]=200

元组是不能被修改的,但可以重新定义元组,即重新定义整个元组而非元组的某个元素。

字典

字典是一些列 键——值 对应,每个键都与值对应,可以将任何python对象作为值,例如数字、字符串、列表等等,常用字典储存一个对象的多种信息。在Python中,字典用放在花括号{} 中的一系列键—值对表示。

格式:

A = {'color':'green','point':5} 

访问字典中的值需要指定键,例如

alien_0 = {'color': 'green'}
print(alien_0['color'])

//输出:green

添加键值对时,需要依次指定字典名、用方括号括起的键和相关联的值。

alien_0 = {'color': 'green', 'points': 5}
alien_0[size] = big
print(alien_0)

//输出:
{'color': 'green', 'points': 5, 'size':'big'}

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值:

alien_0 = {'color': 'green'}

alien_0['color'] = 'yellow'

而删除键值对时,使用del,只需要指定键就行。

del alien_0['points']

嵌套:

有将一系列字典存储在列表中,或将列表作为值存储在字典中,称为嵌套。

下面进行演示,字典列表:

alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}

aliens = [alien_0, alien_1, alien_2]

for alien in aliens:
print(alien)

//结果:
{'color': 'green', 'points': 5}
{'color': 'yellow', 'points': 10}
{'color': 'red', 'points': 15}

在字典中存储列表:

pizza = {
'crust': 'thick',
'toppings': ['mushrooms', 'extra cheese'],
}

for topping in pizza['toppings']:
print( topping)

//输出:extra cheese

有时,在遇到的情况比较复杂时,还可以尝试在字典中嵌套字典,如下:

users = {
    'aeinstein': {
        'first': 'albert',
        'last': 'einstein',
        'location': 'princeton',
    },
    'mcurie': {
        'first': 'marie',
        'last': 'curie',
        'location': 'paris',
    }
}

for循环:

可以使用for循环来遍历列表和元组。

格式:for i in 列表名:

函数range可以创建数值列表,例如range(1,5)代表1234

我们可以使用函数list()将range()的结果直接转换成一个列表,例如

numbers = list(range(1,6))
print(numbers)

//结果:[1,2,3,4,5]

列表解析:

列表解析将for 循环和创建新元素的代码合并成一行,并自动附加新元素,例如:

squares = [value**2 for value in range(1,11)]
print(squares)

//结果:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

在for循环中也能使用切片。

for player in players[:3]:
print(player.title())

遍历字典

遍历字典的for 循环需要明两个变量,用于存储键—值对中的键和值。

示例:

user_0 = {
'username': 'efermi',
'first': 'enrico',
'last': 'fermi',
}

for k, v in user_0.items(): //若只想遍历键,可不加.items或将其替换成keys就行,想遍历值则换成values即可
    print("\nKey: " + key) 
    print("Value: " + value)
    
//输出:
Key: last
Value: fermi
Key: first
Value: enrico
Key: username
Value: efermi

注意:遍历字典时,键—值对的返回顺序与存储顺序不同。

若想按顺序返回,可使用函数数sorted():

for name in sorted(favorite_languages.keys()):

倘若想遍历提取字典中所有的值,而涉及的值很多时,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set),它类似于列表,但每个元素都必须是独一无二的:

for language in set(favorite_languages.values()):

if语句

if 语句的核心都是一个值为True 或False 的表达式,这种表达式被称为条件测试,也被称为布尔表达式。使用条件测试可以检查感兴趣的任何条件。

if-else语句:

age = 17 
if age >= 18:
    print("You are old enough to vote!")
    print("Have you registered to vote yet?") 
else:
    print("Sorry, you are too young to vote.")
    print("Please register to vote as soon as you turn 18!")

简单解释一下:

如果if的条件测试通过了,就执行第一个缩进的print 语句块;

如果测试结果为False ,就执行else 代码块。

有的程序没有else,则只判断是否成功,如果没成功则跳过if代码块执行接下来的语句。

有时候会有检查超过两个的情形,为此可使用Python提供的if-elif-else 结构。

Python只执行if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试,执行紧跟在它后面的代码,并跳过余下的测试。

例如:

age = 12
if age < 4:
    print("Your admission cost is $0.") 
elif age < 18:
    print("Your admission cost is $5.") 
else:
    print("Your admission cost is $10.")
    
//有时会使用多个eiif代码块,原理同上,但python并不要求if-elif 结构后面必须有else 代码块

while循环

for 循环用于针对集合中的每个元素都一个代码块,而while 循环不断地运行,直到指定的条件不满足为止。

示例:

number = 1
while number <= 5:
    print(number)
    number += 1
    
//此时当number大于5while退出循环

退出循环:

  1. 若遇到特殊情况需要在循环的过程中退出循环,可以使用break。

break语句用于退出当前循环。任何python循环都可以使用break语句,例如for或者if。

  1. 若不需要退出循环而只是返回到循环开头,可以使用continue语句。

continue语句用于返回到循环开头,并根据条件测试结果决定是否继续执行循环。

while循环也可以用来处理列表和字典,示例:

unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
# 验证每个用户,直到没有未验证用户为止
# 将每个经过验证的列表都移到已验证用户列表中
while unconfirmed_users: 
    current_user = unconfirmed_users.pop()
    print("Verifying user: " + current_user.title()) 
    confirmed_users.append(current_user)
# 显示所有已验证的用户
print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
    print(confirmed_user.title())

其余用法都差不多,这里就不一一说明了。

函数

定义函数

先定义一个函数:

def greet_user(): 
    """显示简单的问候语"""
    print("Hello!")
    
greet_user()//调用该函数,即让python执行函数的代码

python使用关键字def来定义一个函数,函数名为greet_user().

第二行被称为文档字符串,描述了函数是做什么的。文档字符串用三引号括起,Python使用它们来生成有关程序中函数的文档。

函数返回的值被称为返回值。

def get_formatted_name(first_name, last_name)://该函数接受参数
    """返回整洁的姓名""" 
    full_name = first_name + ' ' + last_name 
    return full_name.title()

musician = get_formatted_name('jimi', 'hendrix')//像函数传递参数
print(musician)

这里get_formatted_name的返回值就是full_name.title(),使用return返回。

将函数存储在模块中

函数的优点之一是,可以使用它们将代码块和主程序分离。

如果将函数存储在称为模块的独立文件中,再将模块导入到主程序中。

import语句允许在当前运行的程序文件中使用模块中的代码。

模块是扩展名为.py的文件,包含要导入到 程序中的代码。

例:

pizza.py

def make pizza (size, *toppings) :
"""概述要制作的比萨"""
	print ("nMaking a " + str (size)+
		"-inch pizza with the following toppings : ")
    for topping in toppings:
		print ("- " + topping)

making_pizzas.py

import pizza
pizza.make_pizza(16,'pepperoni ')
pizza.make_pizza(12'mushrooms ', 'green peppers', 'extra cheese')

Pthon读取这个文件时,代码行import pizza 让Python打开文件pizza.py,并将其中的所有函数都复制到这个程序中。你看不到复制的代码,因为这个程序运行时,Python在幕后复制这些代码。你只需知道,在making pizzas.py中,可以使用pizza.py中定义的所有函数。

导入特定的函数:

from module_name import function_0,function_1,function_2 
(也可以用*代指所有函数)

使用as给函数指定别名

from module_name import function_name as mp(mp即别名)
mp(16,'pep')

使用as给模块指定别名

import pizza as p

继承

如果你要编写的类是另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法。原有的类称为父类,而新类称为子类。

子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。

定义子类时必须在括号内指定父类的名称。

class carsom(car)

super()函数:

super()函数将父类和子类连接起来,可以让子类调用父类的方法

对于父类的方法可以进行重写,但重写的方法要与父类同名。

导入类

随着不断给类添加功能,文件可以变得很长,为了简洁,python允许将类存储在,模块中,然后在主程序中导入模块。

格式参照导入函数。

将Car类存储在car.py的模块中

car.py

"""一个......的类"""
class Car():
	"""......"""
	def __init__()

创建my_car.py导入Car类

from car import Car

my_new_car=Car('audi','a4','2016')

标准库

python标准库是一组模块,安装的python都包含它。

你现在对类的工作原理已有大致的了解,可以开始使用其他程序员编写好的模块了。可使用标准库中的任何函数和类,为此只需在程序开头包含一条简单的import语句。

类编码风格

类名首字母大写且不使用下划线。

实例名和模块名都小写且单词之间加上下划线。

每个类的类定义后要用文档字符串描述类功能,模块也要包含文档字符串。

可以用空行组织代码、分割方法。用两个空格分隔类。

先导入标准库的模块,添加一个空行后再导入自己编写的模块。

文件和异常

文件

用程序打开文件:

with open ( 'pi_digits.txt ') as file_object:
contents = file_object.read ()
print (contents)

函数open()表示返回一个文件的对象并将这个对象储存在后面变量中。

with表示不再需要访问文件后关闭它,python自己会关。

read()读取文件并将它储存在一个变量中。但read()到达文件末尾时会返回一个空字符串,即结尾会多出来一个空行。

若想删除可在print语句中使用rstrip()

例:print (contents.rstrip())

要让Python打开不与程序文件位于同一个目录中的文件,需要提供文件路径

可以使用相对文件路径和绝对文件路径。

with open ( 'text_files/filename.txt ' ) as file_object://相对
    
file _path = 'C:\Userslehmattheslother_filesitext_files\filename.txt'
with open (file_path) as file_object //绝对

for line in file_object://可以使用for循环逐行读取

open()有两个实参:第一个实参也是要打开的文件的名称。第二个实参**(‘w’)告诉Pytion。,我们要以写入模式打开这个文件。打开文件时,可指定读取模式(‘r’)、写入模式(‘w’)、附加模式('a)或让你能够读取和写入文件的模式('r+’)**。

如果你省略了模式实参,python将以默认的只读模式打开文件。

write()方法:将字符串写入文件,但该函数不会在文本末尾添加换行符。

附加模式:如果你要给文件添加内容,而不是覆盖原有的内容,可以附加模式打开文件。

异常

Python使用被称为异常的特殊对象来管理程序执行期间发生的错误

每当发生让Pytion不知所措的错误时,它都会创建一个异常对象。如果你编写了处理谈异常的代码,程序格继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。

处理异常:

当你认为可能发生了错误时,可编写一个try-except代码块来处理可能引发的异常。你让Pyton尝试运行一些代码,并告诉它如果这些代码引发了指定的异常,该怎么办。

例:

try:
	print (5/0)
except zeroDivisionError:
	print ("You can't divide by zero! ")

到此就先结束了,若有不足或者不正确的地方请在评论区回复或者私信作者。
今天也是努力学习的一天!

你可能感兴趣的:(python,经验分享)