python基础

本文详细介绍了Python编程的基础知识,包括变量的定义与命名规则,数据类型如int、float、bool、str等,以及如何检测数据类型。还涵盖了输出格式、输入方法、数据转换,运算符的使用,条件语句如if-else结构,循环结构如while和for循环,字符串的操作如查找、修改、格式化输出,列表、元组、字典和集合的基本操作,以及函数的定义和使用。
摘要由CSDN通过智能技术生成

变量

变量

数据在内存中的一个名称

定义变量

变量名 = 值

命名规则

A.由数字、字母、下划线组成,不能数字开头

B.不能使用内置关键字

C.严格区分大小写

数据类型

int,float / true,false / str / list / tuple / set / dict

检测数据类型的方法

type(变量名)

输出

格式化输出

%s / %d / %f (注:%06d,%.2f)

输出

f '{变量名}'

转义字符

\n:换行 \t :tab键

结束符

print('输出的内容', end="\n")

举例:我的名字是TOM,今年18岁

print('我的名字是%s,今年%d岁' % (name, age))
print(f'我的名字是{name},我今年{age}岁')

输入

语法

变量 = input("内容")

特点

1.等待用户输⼊

2.输入数据当字符串

3.定义变量

转换数据类型

语法:int(变量) / float(变量) / str(变量) / eval(变量) / tuple(变量) / list(变量)

举例:转换为float

num1 = 1
print(type(float(num1)))

运算符

运算符

+ 、- 、* 、/ 、// 、% 、** 、()

赋值

1.=

2.多个变量量赋值:num1, float1, str1 = 10, 0.5, 'hello world'

3.多变量量赋相同值:a = b = 10

复合赋值运算符

+= 、-= 、*= 、/= 、//= 、%= 、**=

(c += a 等价于 c = c + a)

比较运算符:

== 、!= 、> 、< 、>= 、<=

(注:结果为真或假)

逻辑运算符

and 、or 、 not

(注:结果为真或假)

数字间的逻辑

and结果为最后非0数 , or结果为第一个非0数

举例:

c = 10 
c += 1 + 2 
print(c) # 输出13

条件语句

if语法

if 条件:

条件成立执行

if...else...

if 条件:

条件成立执行

else:

条件不成立执行

多重判断

if 条件1:

条件1成立执行

elif 条件2:

条件2成立执行

else:

以上条件都不成立

嵌套(条件1成立才会执行条件2)

if 条件1:

条件1成立执行

if 条件2:

条件2成立执行

三目运算符

条件成立执行 if 条件 else 条件不成立执行

举例训练:猜拳游戏

import random
people_mora = int(input('准备出拳什么,0——石头,1——剪刀,2——布:'))
computer_mora = random.randint(0, 2)
print(computer_mora)
if ((people_mora == 0) and (computer_mora == 1)) or (((people_mora == 1) and (computer_mora == 2)) or ((people_mora == 2)and(computer_mora == 0))):
    print('赢')
elif people_mora == computer_mora:
    print('平局')
else:
    print('输')

循环

while

while 条件:

条件成立重复执行

嵌套

(内循环结束后执行外循环,直到外循环结束,此处大循环才结束)

while 条件1:

条件1成立执行

while 条件2:

条件2成立执行

for(遍历)

for 临时变量 in 序列:

重复执行

while...else

while 条件:

条件成立重复执行

else:

循环正常结束执行

for...else

for 临时变量 in 序列:

条件成立重复执行

else:

循环正常结束执行

break和continue

break(终止循环)continue(跳过这次循环)

continue:如果本次循环是计数,那么continue前需加1,否则陷入死循环

训练举例:九九乘法表

j = 1
while j <= 9:
    i = 1
    while i <= j:
        print(f'{i} * {j} = {i * j}', end='\t')
        i += 1
    print()
    j += 1

字符串

字符串特征

不可变类型

"""支持换行"""

举例:输出 I'm Tom

方法1:使用双引号 "I'm Tom"

方法2:使用转义字符 'I\'m Tom'

下标(查找1个数据)

变量[下标](下标以0开始)

切片(查找多个数据)

变量[开始下标:结束下标:步长]

(注:不含结束下表,步长默认1,下标为负数:倒数第几,倒数开始为1,步长为负数:倒序)

查找

变量.find('查找的数据', 开始下标, 结束下标)

开始结束可省略,有则返回下标,无则返回-1

变量.index('查找的数据', 开始下标, 结束下标)

有则返回下标,无则报错

查找方向从右侧开始

rfind(),rindex()

查找出现的次数

变量.count('查找的数据', 开始下标, 结束下标)

修改

替换

变量.replace(旧数据, 新数据, 替换次数)

分割

变量.split(分割字符, 分割字符出现的次数)

——返回数据个数为分割次数+1

——如果分割字符是原有字符串中的子串,分割后则丢失该子串。

合并

合并字符.join(多字符串组成的变量)

——如:list1 = ['chuan', 'zhi', 'bo', 'ke']

句首单词的首字母变大写

变量.capitalize()

句子的每个首字母变大写

变量.title()

大写转小写

变量.lower()

小写转大写

变量.upper()

删除空白符

变量.lstrip()——左

变量.rstrip()——右

变量.strip()——两侧

对齐并填充

变量.ljust(长度,填充字符)——左

变量.rjust(长度,填充字符)——右

变量.center(长度,填充字符)——中

判断

返回真或假

以....开头

变量.startswith('数据',开始下标,结束下标)

以....结尾

变量.endswith('数据',开始下标,结束下标)

全为字母

变量.isalpha()

全为数

变量.isdigit()

数+字母

变量.isalnum()

全为空白

变量.isspace()

列表

列表的格式:

[数据1, 数据2, 数据3, 数据4......]

数据类型:可变类型数据

查找

下标

变量[下标]

index():返回下标

变量.index('查找的数据', 开始下标, 结束下标)

count():统计次数

变量.count('查找的数据', 开始下标, 结束下标)

len():数据的个数

len(变量)

in、not in:判断是否存在(true、false)

'查找的数据' in 变量

增加

append():结尾加数据,数据看为整体

变量.append(数据)

extend():结尾加数据,数据看作分开,逐一添加

变量.extend(数据)

insert():指定位置新增数据

变量.insert(位置下标, 数据)

删除

del:删除列表

del 变量

del:删除指定数据

del 变量[下标]

pop():删除指定下标数据

变量.pop(下标)

remove():移除某个数据

变量.remove(数据)

clear():清空列表

变量.clear()

修改

修改指定下标数据

变量[下标] = 值

逆置:reverse()

变量.reverse()

排序:sort()

变量.sort( key=None, reverse=False)

——reverse = True 降序, reverse = False 升序(默认)

——括号中不填就为默认值

复制

copy():需准备新的变量储存

变量.copy()

列表的循环遍历:

name_list = ['Tom', 'Lily', 'Rose']
for i in name_list:
    print(i)

列表的嵌套:

name_list = [['⼩小明', '⼩小红', '⼩小绿'], ['Tom', 'Lily', 'Rose'], ['张三', '李李四',
'王五']]
print(name_list[2][1])
#李四

随机分配办公室:

import random
# 准备数据
teachers = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
offices = [[], [], []]
# 分配老师办公室,取到列表,遍历老师列表数据(循环加入)
for name in teachers:
    num = random.randint(0,2)
    offices[num].append(name)
# 办公室编号
i = 1
for office in offices:
    print(f'办公司{i}的人数为{len(office)},老师分别是:')
    for name in office:
        print(name)
    i += 1

元组(tuple)

应用场景:可以存储多个数据,元组内的数据是不能修改的。

元组的格式:(数据1, 数据2, 数据3, 数据4......)

注意:定义的元组只有一个数据,那么这个数据后面要添加逗号

举例:2 = (10,)

查找

下标

变量[下标]

index():返回下标

变量.index('查找的数据', 开始下标, 结束下标)

count():统计次数

变量.count('查找的数据', 开始下标, 结束下标)

len():数据的个数

len(变量)

修改

注意:元组内的直接数据如果修改则立即报错,如有列表,列表里的数据是可以修改

字典(dict)

字典:键值对出现,不支持下标

字典类型:可变类型

字典的格式:

dict = {key1: value1,key2: value2}

dict = {} ——空字典

dict = dict() ——空字典

举例:dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

字典的常见操作

增/改

变量[key] = 值

——key存在则修改key对应的值;如果key不存在则新增键值对

del 变量[key]

清空

变量.clear()

查值

变量[key]

变量.get(key, 默认值)

——查找的key不存在返回默认值,如果省略默认值,则返回 None。

查所有key

变量.keys()

查所有值

变量.values()

查键值对

变量.items()

字典的循环遍历

遍历key

for 临时变量 in 变量.keys():

print(临时变量)

遍历value

for 临时变量 in 变量.values():

print(临时变量)

遍历元素

for 临时变量 in 变量.items():

print(临时变量)

遍历键值对

for key, value in 变量.items():

print(f'{key} = {value}')

集合

集合的格式:

set = {数据1, 数据2, 数据3, 数据4......}

set = set() ——空集合

集合的特点:

1. 去重

2. 无序,不支持下标

增加

add()

变量.add(数据)

update():追加的数据是序列

变量.update(序列数据)

删除

remove():删除指定数据

变量.remove(数据)

discard():删除指定数据

变量.discard(数据)

pop():随机删除某个数据,返回这个数据

变量存储 = 变量.pop()

查找

存在

数据 in 变量

不存在

数据 not in 变量

公共操作

运算符

运算符

描述

支持的容器类型

+

合并

字符串、列表、元组

*

复制

字符串、列表、元组

in

元素是否存在

字符串、列表、元组、字典

not in

元素是否不存在

字符串、列表、元组、字典

函数

函数

描述

len()

计算容器中元素个数

del 或 del()

删除

max()

返回容器中元素最大值

min()

返回容器中元素最小值

range(start, end, step)

生成从start到end的数字,步长为 step,供for循环使用

—— range()生成的序列不包含end数字

enumerate()

enumerate(可遍历对象, start=0)

——start参数用来设置遍历数据的下标的起始值,默认为0

——列出数据和数据下标,⼀般用在 for 循环当中

举例

# 1 3 5 7 9 
for i in range(1, 10, 2):
    print(i)
list1 = ['a', 'b', 'c', 'd', 'e'] 
for i in enumerate(list1): 
    print(i)
 
for index, char in enumerate(list1, start=1):
    print(f'下标是{index}, 对应的字符是{char}')

容器类型转换

元组

tuple(变量)

列表

list(变量)

集合

set(变量)

——1. 可以快速去重 2. 不支持下标

推导式

列表推导式

[xx for xx in range()]

举例:创建一个0-10的列表

list1 = [i for i in range(10)] 
print(list1)

举例:创建0-10的偶数列表(if)

list1 = [i for i in range(10) if i % 2 == 0] 
print(list1)

举例:创建列表:[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)](多个for)

list1 = [(i, j) for i in range(1, 3) for j in range(3)] 
print(list1)

字典推导式

{xx1: xx2 for ... in ...}

举例:创建字典:字典key是1-5数字,value是这个数字的2次方

dict1 = {i: i**2 for i in range(1, 5)} 
print(dict1) 
# {1: 1, 2: 4, 3: 9, 4: 16}

举例:将两个列表合并为一个字典

list1 = ['name', 'age', 'gender'] 
list2 = ['Tom', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)

举例:提取字典中目标数据

counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求:提取上述电脑数量大于等于200的字典数据 
count1 = {key: value for key, value in counts.items() if value >= 200}
print(count1) # {'MBP': 268, 'DELL': 201}

集合推导式

{xx for xx in ...}

举例:创建一个集合,数据为列表list1 = [1, 1, 2]的2次方。

list1 = [1, 1, 2] 
set1 = {i ** 2 for i in list1}
print(set1) # {1, 4}

函数

函数的定义:将一段具有独立功能的代码块整合为一个整体并命名,在需要的位置调用这个名称即可完成对应的需求,实现代码重用。

定义函数

def 函数名(参数): 
    代码1
    代码2

调用函数

函数名(参数)
#1. 不同的需求,参数可有可无。 
#2. 函数必须先定义后使用。

函数的参数

举例:函数完成两个数的加法运算

# 定义函数时同时定义了接收用户数据的参数a和b,a和b是形参 
def add_num2(a, b): 
    result = a + b 
    print(result)
 
# 调⽤用函数时传入了真实的数据10 和 20,真实数据为实参
add_num2(10, 20)

函数的返回值

需要返回结果给用户需要使用函数返回值

举例:制作一个计算器,计算任意两数字之和,并保存结果。

def sum_num(a, b): 
    return a + b
# 用result变量保存函数返回值 
result = sum_num(1, 2)
print(result)

备份【待删】

def info_print():
    print('请选择功能————————————————————')
    print('1.添加学员')
    print('2.删除学员')
    print('3.修改学员信息')
    print('4.查询学员信息')
    print('5.显示所有学员信息')
    print('6.退出系统')
    print('_'*20)
 
info = []
 
def add_info():
    """添加学员"""
    new_id = input('学号:')
    new_name = input('姓名:')
    new_tel = input('电话:')
    global info
    for i in info:
        if new_name == i['name']:
            print('该姓名已存在')
            return
    info_dict = {}
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    info.append(info_dict)
    print(info)
def del_info():
    del_name = input('删除者的姓名:')
    global info
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            break
            #break停止的是for循环的遍历
    # else是循环正常结束后的执行代码
    else:
        print('该用户不存在')
    print(info)
def modify_info():
    modify_name = input("输入学员的姓名:")
    global info
    for i in info:
        if modify_name == i['name']:
            i['tel'] = input('请输入电话号码:')
            break
    else:
        print('此人不存在!')
    print(info)
def search_info():
    search_name = input('姓名:')
    global info
    for i in info:
        if search_name == i['name']:
            print(f"这个学生的id是{i['id']},这个学生的名字是{i['name']},这个学生的电话是{i['tel']}")
            break
    else:
        print('此人不存在')
def print_all():
    print('id\t姓名\t电话')
    for i in info:
        print(f"{i['id']}\t{i['name']}\t{i['tel']}")
 
 
 
 
while True:
    info_print()
    use_num = int(input('请输入序号:'))
 
    if use_num == 1:
        add_info()
    elif use_num == 2:
        del_info()
    elif use_num == 3:
        modify_info()
    elif use_num == 4:
        search_info()
    elif use_num == 5:
        print_all()
    elif use_num == 6:
        exit_info = input('是否退出:(yes或者no)')
        if exit_info == 'yes':
            print('已退出')
            break
    else:
        print('输入有误')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值