python基础

变量和简单的数据类型

变量

变量的命名规则:
1、只能包含字母、数字和下划线,并且不能以数字开头
2、变量名中不能是python中的保留字

字符串

字符串的几种定义方法

name = 'Bob'
name = "Bob"
name = """Bob"""

如何字符串本身包含单引号或者双引号,我们可以用与包含相反的方式去定义,也可以使用转移字符

字符串拼接

name = "Bob"
str = ' like alice'
print(name + str)

另一种方式的拼接

class_name = 123
avg_salary = 1345
message = "sdadas%s%s" %(class_name, avg_salary)
print(message)

%:表示占位符
s:表示字符串
多个变量占位时要用括号

拼接字符串的另一种用法这种方式称为f字符串的方式

class_name = 123
avg_salary = 1345
message = "sdadas%s%s" %(class_name, avg_salary)
full_name = f"{class_name} {avg_salary} {message}"
print(full_name)

这种拼接方式也很便捷,我们不关心类型,只需要将变量用花括号括起来就行但有一点不好的地方就是这种方式不能控制变量的精度

num = input("请输入一个数字")
num = int (num)
print(num)

列表简介

列表是什么

1、列表由一系列按特定顺序排列的元素组成。
2、列表中通常包含多个元素,因此给列表指定一个表示复数的名称比较好
3、python中用[]来表示列表

bicycles = ['trek', 'cannondable', 'redline', 'specialized']
print(bicycles)

运行结果:列表的方括号也会被打印出来,但有时候我们不希望打印出来方括号
python基础_第1张图片

这里列表中元素的类似c语言中的数组

bicycles = ['trek', 'cannondable', 'redline', 'specialized']
print(bicycles[0])

python中下标也是从0开始的,另外python中将索引指定为-1可以访问列表中的最后一个元素

bicycles = ['trek', 'cannondable', 'redline', 'specialized']
print(bicycles[-1])

修改、添加、删除列表中的元素

1、修改

motorcycles = ['honada', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)

1.png
2、添加元素
(1)、在列表吗末尾添加元素
用到的方法是append()

motorcycles = ['honada', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)

2.png
(2)、在列表中插入元素
用到的方法是insert(index, data)
这里是插入到下标为index的位置

motorcycles = ['honada', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.insert(1, 'ducati')
print(motorcycles)

3
3、删除元素
a、使用del语句删除元素(前提是知道要删除元素在列表中的位置)

motorcycles = ['honada', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[1]
print(motorcycles)

1.png
b、使用pop方法
pop方法可以删除列表末尾的元素,同时返回刚被弹出的元素

motorcycles = ['honada', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)

python基础_第2张图片
c、弹出列表中任何位置的元素

motorcycles = ['honada', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop(1)
print(motorcycles)
print(popped_motorcycle)

python基础_第3张图片
d、根据值删除元素
remove只删除找到的第一个元素,如果存在多个值相同的元素时

motorcycles = ['honada', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.remove('yamaha')
print(motorcycles)

python基础_第4张图片
4、排序
(1)、使用sort()方法对列表永久排序默认按字典序排序

cars = ['audi', 'bmw', 'toyota', 'subaru']
print(cars)
cars.sort()
print(cars)

python基础_第5张图片
sort()方法中可以传入参数,来改变排序规则

cars = ['audi', 'bmw', 'toyota', 'subaru']
print(cars)
cars.sort(reverse = True)
print(cars)

python基础_第6张图片
(2)、使用sorted函数对列表进行临时排序

cars = ['audi', 'bmw', 'toyota', 'subaru']
print(cars)
new_cars = sorted(cars)
print(new_cars)
print(cars)

python基础_第7张图片

倒序

用到主要是reverse方法

cars = ['audi', 'bmw', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)

python基础_第8张图片

列表长度

用到的是len函数

cars = ['audi', 'bmw', 'toyota', 'subaru']
print(cars)
cnt = len(cars)
print(cnt)

6.png


操作列表

遍历整个列表

magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(magician)

python基础_第9张图片
上面的程序中就用到了python中的循环,当我们遍历时循环是必不可少的

python是根据缩进来判断代码行与前一个代码行的关系
循环中常见的问题:
1、缩进问题
2、冒号容易漏写

创建数值列表

使用的是range()函数

magicians = ['alice', 'david', 'carolina']
for i in range(0, 3):
    print(magicians[i])

python基础_第10张图片

range(i, j)生成一个从i到j-1的数值列表

使用range()创建一个数字列表
使用list函数和range()函数结合

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

3.png
对数字列表进行简单的计算的函数

numbers = list(range(1, 6))
print(numbers)
print(min(numbers))
print(max(numbers))
print(sum(numbers))

python基础_第11张图片

使用列表的一部分

切片

处理列表中的部分元素就叫切片

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players)
print(players[0:3])

python基础_第12张图片

如果前面一项缺即players[:4]默认从列表的起始位置开始, players[1:]默认到最后部分结束, 也可以在括号里面指定第三个之表示隔几个元素取一个(和matlab很像,不过python的间隔是在最后,matlab是在中间设置)

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players)
print(players[0:6:2])

python基础_第13张图片
遍历切片

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players)
new_players = players[0:6:2]
for player in new_players:
    print(player)

print("over")

python基础_第14张图片

复制列表

可以用包含列表中所有元素的切片复制

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players)
new_players = players[:]
print(new_players)

也可以直接复制

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players)
new_players = players
print(new_players)

python基础_第15张图片

元组

元组和列表类似,但是元组中的数据不可修改,并且元组使用()圆括号标识
用法很多都和列表类似不再赘述

if语句

条件测试

1、检查多个条件时要用or或者and

age_0 = 22
age_1 = 18
print(age_0 >= 21 and age_1 >= 21)

2、检特定值是否包含在列表中

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print('eli' in players)

结果:True

检验特定值是否不包含在列表中

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print('eli' not in players)

结果:False

if语句

格式:
1、基本if语句

if conditindl_test:
	do something

2、if-else语句

if conditindl_test:
	do something
else:
	do something

3、if-elif-else语句

if conditindl_test:
	do something
elif conditindl_test:
	do something
else:
	do something

字典

字典的一些使用

字典时一系列键值对,每个键与一个值,与键相关联的值可以是数、字符串、列表乃至字典
字典用放在花括号中的一系列键值对表示

alien_0 = {'color' : 'green'}

这个字典中只存储了一个键值对,具体来说color时键,green是值

如何对字典中的值进行访问

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

添加键值对

alien_0 = {'color' : 'green'}
alien_0['X-position'] = 0
alien_0['y_position'] = 25
print(alien_0)

1.png

创建一个空字典

alien_0 = {}

修改字典中的值

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

python基础_第16张图片

删除键值对

使用del语句

alien_0 = {'color' : 'green', 'position' : 5}
print(alien_0)
del alien_0['position']
print(alien_0)

python基础_第17张图片

使用get()方法来访问值

如果我们直接访问字典中一个不存在键值对时,这时python会报错,如果我们使用get()方法则不会报错会返回一个我们指定的信息

alien_0 = {'color' : 'green', 'position' : 5}
print(alien_0)
print(alien_0['a'])

python基础_第18张图片
如果使用get()方法

alien_0 = {'color' : 'green', 'position' : 5}
print(alien_0)
print(alien_0.get('a', 'No find'))

python基础_第19张图片
如果get()方法的第二个参数没有指定,这时候get()方法会返回一个None表示不存在我们要找的这样的键值对

遍历字典

遍历所有键值对

一个小例子

user  = {
    'username' : 'efermi',
    'first' : 'enrico',
    'last' : 'fermi',
}
for k, v in user.items():
    print(f"\nKey:{k}")
    print(f"value{v}")

python基础_第20张图片

这个例子中我们用k,v两个变量分别保存键和值,然后调用items()方法

遍历字典中所有的键

favorite_languages = {
    'jen' : 'python',
    'sarah' : 'c',
    'edward' : 'ruby',
    'phil' : 'python'
}
for name in favorite_languages.keys():
    print(name)

python基础_第21张图片

遍历字典中的所有值

favorite_languages = {
    'jen' : 'python',
    'sarah' : 'c',
    'edward' : 'ruby',
    'phil' : 'python'
}
for language in favorite_languages.values():
    print(language)

python基础_第22张图片

按特定的顺序遍历字典中的所有键

favorite_languages = {
    'jen' : 'python',
    'sarah' : 'c',
    'edward' : 'ruby',
    'phil' : 'python'
}
for name in sorted(favorite_languages):
    print(name)

python基础_第23张图片

嵌套

字典列表

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]
print(aliens)
for alien in aliens:
    print(alien)

python基础_第24张图片

字典中存储列表

pizza = {
    'crust' : 'a',
    'toppings' : ['mushrooms', 'extra chrrse'],
}
for topping in pizza['toppings']:
    print(topping)

python基础_第25张图片

另外还有字典中套字典的用法,用法都是一样的不再赘述

用户输入和while()循环

用户输入

print("请告诉我你是谁")
name = input()
print("我是" + name)

# input()还可以传参数
name = input("请告诉我,你是谁")
print(name)

需要注意的是不管我们输入的是什么类型的数据都会被input函数当成字符串类型的数据处理,如果想要得到我们想要得到的数据类型就需要进行类型转化

while循环

while的基本用法这里不再说了很简单只说一下while处理字典和列表

unconfirmed_users = ['alice', 'brain', 'candace']
confirmed_users = []

while unconfirmed_users:
    current_user = unconfirmed_users.pop()

    print(f"Verifying user : {current_user}")
    confirmed_users.append(current_user)

print("\nThe following users have been confirmed:")
for confirmed_user in confirmed_users:
    print(confirmed_user)

python基础_第26张图片
删除为特定值的所有列表元素

pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
while 'cat' in pets:
    pets.remove('cat')
print(pets)

python基础_第27张图片

函数

定义函数

def greet_user():
    """显示简单的问候语"""
    print("Hello")

greet_user()

python基础_第28张图片

def 告诉python,这里要定义一个函数,括号里面是参数
“”“”""里面可以放注释

def greet_user(username):
    """显示简单的问候语"""
    print(f"Hello {username}")

greet_user('jack')

3.png

传递参数

上面其实已经提到了参数的传递这里具体介绍几种传递参数的方法

位置参数

python调用函数时,必须将每个实参都关联到函数定义的一个形参中,最简单的关联方式就是基于实参的顺序

def describle_pet(animal_type, pet_name):
    """显示宠物信息"""
    print(f"\nI have a {animal_type}")
    print(f"My {animal_type}'s name is {pet_name.title()}.")

describle_pet('dog', '豆豆')

python基础_第29张图片

关键字实参

关键字实参是传递参数给函数的名称值对

def describle_pet(animal_type, pet_name):
    """显示宠物信息"""
    print(f"\nI have a {animal_type}")
    print(f"My {animal_type}'s name is {pet_name.title()}.")

describle_pet(animal_type = 'dog', pet_name = '豆豆')

python基础_第30张图片

默认值

# 给形参指定默认值时,等号两边不要有空格
def describle_pet(animal_type, pet_name='豆豆'):
    """显示宠物信息"""
    print(f"\nI have a {animal_type}")
    print(f"My {animal_type}'s name is {pet_name.title()}.")

describle_pet(animal_type = 'dog')

返回值

返回简单值

def get_formatted_name(first_name, last_name):
    full_name = f"{first_name} {last_name}"
    return full_name

musician = get_formatted_name('jimi', 'hendrix')
print(musician)

python基础_第31张图片

让实参变成可选

def get_formatted_name(first_name, last_name, middle_name = ''):
    if middle_name != '' :
        name = f"{first_name} {middle_name} {last_name}"
    else:
        name =  f"{first_name} {last_name}"
    return name.title()

musician = get_formatted_name('jimi', 'hendrix')
print(musician)

python基础_第32张图片

传递列表

def greet_user(names):
    """向列表中的每位用户发出简单的问候"""
    for name in names:
        msg = f"Hello {name}"
        print(msg)

names = ["Bob", "alen", 'alice']
greet_user(names)

python基础_第33张图片

在函数中修改列表

unprinted_designs = ['phone case', 'robot pendant', 'dodecahedrom']
completed_models = []

while unprinted_designs:
    current_design = unprinted_designs.pop()
    print(f"Printing model:{current_design}")
    completed_models.append(current_design)

print("\nThe following models have been printed:")
for completed_model in completed_models:
    print(completed_model)

python基础_第34张图片

禁止函数修改列表

有时候我们是不希望函数去修改原列表的,这时我们可以传入列表的切片副本

传递任意数量的实参

def make_pizza(*toppings):
    """打印顾客点的所有配料"""
    print(toppings)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')

python基础_第35张图片

形参名中的*让python创建一个名为toppings的空元组,并将收到的所有值都封装到这个元组中

def make_pizza(*toppings):
    """打印顾客点的所有配料"""
    for topping in toppings:
        print(topping)
make_pizza('pepperoni')
make_pizza('mushrooms', 'green peppers', 'extra cheese')

python基础_第36张图片

使用任意数量的关键字实参

def build_profile(first, last, **user_info):
    user_info['first_name'] = first
    user_info['last_name'] = last
    return user_info

user_profile = build_profile('a', 'b', location = 'CN', filed = 'CS')

print(user_profile)

1.png

两个星号是让python创建一个名为user_info的字典,所有传递的参数都放在这个字典中

将函数存储在模块中

我们都知道使用函数的优点是可以将代码块和主程序分离,我们还可以进一步将函数存储在称为模块的独立文件中,再将模块导入到主程序中。import语句允许在当前运行的文件中使用模块中的代码

导入整个模块

要想让函数可以导入首先我们需要创建模块,模块的扩展名.py文件

def make_pizza(size, *toppings):
    print(f"\nMakeing a {size}-inch pizza with the following toppings:")
    for topping in toppings:
        print(f"- {topping}")

接下来我们需要在pizza.py所在的目录下创建一个.py文件,在这个文件中我们导入刚创建的模块,在调用make_pizza()两次

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

python基础_第37张图片

导入特定的函数

语法格式如下:

from module_name import function_name
# 如果需要导入多个函数,用逗号分隔开即可,(偷偷多一嘴,都需要导入很多函数了不如直接把模块导进去)
from pizza import make_pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushroome', 'green peppers', 'extra cheese')

使用as给函数指定别名

如果要导入的函数名称可能和程序中现有的名称冲突,或则函数名太长,可以指定简短而独一无二的别名,别名是函数的另一个名称,类似于外号,如果我们想给函数起外号就必须在导入它的时候指定

from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushroome', 'green peppers', 'extra cheese')

需要注意当我们给函数指定别名以后在这个导入模块的程序中就只能使用这个别名了而不能使用之气那的名字可

使用as给模块指定别名

import pizza as p
p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushroome', 'green peppers', 'extra cheese')

导入模块中的所有函数

from pizza import *
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushroome', 'green peppers', 'extra cheese')

你可能感兴趣的:(python,开发语言,前端)