首页 > 编程语言 >算法专项—新手村

算法专项—新手村

时间:2024-08-30 18:30:02浏览次数:4  
标签:专项 新手村 name 元素 list 算法 tom print my

一:python输入输出

1、python 中使用print函数输出语句;默认print输出会打印回车;在python中双引号和单引号的作用是相同的!

print("gsupl")
print("gsupl","yyds",sep='****')#用****分割
print("gsupl"+"yyds")#使用+进行拼接
print("guspl"*10)#输出10次
print("gsupl",end='')#取消默认的回车

二:python基本运算

1、切记在python中不同类型之间的数据不能直接进行运算;需要转化为同一类型的数据进行运算;

eg:input()输入的数据类型为str;如果需要进行运算;需要进行类型转化

/ #除法
% #取余
** #次方运算
a in b #判断a是否在b里面
a not in b #反之

三:python列表

1、列表的格式

#变量名称=["元素1","元素2","列表1","元素4"]
#元素类型是不受限制的,元素就是数据
eg:name_list=["wo","xi","huan","ni","520",[1,2,3]]
#定义空变量  变量名称=[]  变量名称=list()

2、列表的索引

name_list=["tom","kali","rose",[1,2,3]]
可以通过索引取出对应位置的元素,从左向右从0开始,从右向左从-1开始
print(name_list[0])#结果为tom
print(name_list[-1])#结果是[1,2,3]
#嵌套列表的下的索引
print(name_list[-1][-1])#结果是3

3、列表的常用方法

(1)len() 计算长度

name_list=["tom","kali","rose",[1,2,3]]   
print(len(name_list))#结果为4

(2)查询某元素的下标 index()方法

name_list=["tom","kali","rose",[1,2,3]]   
A=name_list.index("tom") 
print(f"tom在列表中的下标索引为{A})#结果为0

(3)修改特定位置的元素值

name_list=["tom","kali","rose",[1,2,3]]
name_list[0]="yy"#将tom修改为yy
name-list[0][2]=[11,22,33]#将tom,kali,rose修改为11,22,33

(4)在指定的下标位置插入元素 ,insert()方法

name_list=["tom","kali","rose",[1,2,3]]   
name_list.insert(1,"yy")#在kali后面插入yy元素

(5)在列表末尾追加元素,append()方法

name_list=["tom","kali","rose",[1,2,3]]   
name_list.append("yy")#在[1,2,3]后面添加元素yy

(6)在列表末尾追加一个列表,extend()方法

name_list=["tom","kali","rose",[1,2,3]]   
name_list1=["toms","kalis","roses",[1,2,3s]]   
name_list.extend(name_list1)#结果就是将name-list1的元素添加到name_list中

(7)删除列表中元素的删除 del关键字方法 pop()方法 remove()方法

A=["tom","kali","rose",[1,2,3]]
del A[0]#删除了tom 
A.pop(0)#删除了tom并且取出了tom,并且可以赋值给变量
A.remove("tom")#通过名称进行删除,删除相同名称的第一个元素
A.clear()#清空A整个字典

(8)统计某个元素在列表中的数量count()方法

A=["tom","kali","rose","kali","kali",[1,2,3]]
b=A.count(kali)#kali在A中出现的次数

(9)给列表中的元素进行从小到大排序sort()方法和倒置排序reversed()方法

A=["tom","kali","rose","kali","kali",[1,2,3]]
A.sort()#给列表进行大小排序#使用sort方法时必须列表元素都是数字才可以
A.reversed()#进行倒置排序

四:python字符串

1、在python中字符串和其他语言一样

(1)字符串的替换

#通过下标索引取出相应的字符
str='gsupl'
print(str[0])
print(str[-1])
print(str[:2])#从头开始取到索引为2
print(str[2:])#从索引2开始取剩下全部的
print(str(::2))#步长为2;结果为 gup
print(str(::-1))#反转;相当于reversed()
#常见方法
str.count("g")#统计g出现的次数
len(str)#计算字符串的长度
str.replace("gsupl","admin")#替换字符串

(2)字符串的分割.split()方法

str="gsupl"
str.split("1")#将字符串以1进行分割;返回结果是列表list

(3).strip()去除空格

(4)遍历

str="gsupl"
for i in str:
    print(i)

五:python元组

1、元组的定义

(1)元组不可以修改数据,但是可以修改里面嵌套的列表或者元组

2、元组的常用方法

(1)通过下标索引输出元素

a=(1,2,3,4,5,6,7,8,9)  
print(a[0])#结果为1

2,由于元组不可修改,所以不能增删

a=(1,2,3,4,5,6,7,8,9) 

a.index(3)#查看3元素的下标索引
a.count(2)#查看2在元组中的出现的次数
len(a)#结果是9
print(a[3:5])

六:python字典

1、字典的定义

字典容器中数据的存放形式是通过键值对;通过key找到对应的value;在进行查找修改和替换的时候都是用key进行操作

2、字典的常用方法

(1)在字典中获取数据,不能通过下标索引,只能通过key找到value

my_dict={"zbx":"122","zqw":"123"}
a=my_dict["zbx"]#通过key(zbx)去获取它对应的value的值

(2)字典的嵌套使用(字典中的key和value)是任意数据类型(key不可为字典)

my_dit={"aa":{"语文":"66","数学":"99"}}
my_dit["aa"]["语文"]#取到了aa的语文成绩为66

(3)新增字典的元素(如果key存在,就修改,如果没有就新增)

my_dict={"zbx":"122","zqw":"123"}
my_dict["zbx":"221"]#修改zbx对应的value值,输出为221
my_dict["zyy":"122"]#新增元素

(4)删除元素 pop()方法

my_dict={"zbx":"122","zqw":"123"}
my_dict.pop("zbx")#删除zbx元素
my_dict.clear()#清空字典
my.keys()#获取字典的全部key
my_value()#获取全部的value
my_items()#获取全部的键值对

七:python集合

1、集合的定义

(1)集合不支持重复的元素

my_set={"aaa","bbb","ccc","ddd"}
#空集合的定义,不允许重复,内容是无序

2、集合常用的使用方法

(1)由于集合是无序的,所以不支持下标索引查找元素

(2)添加新元素 add()方法

my_set={"aaa","bbb","ccc","ddd"}
my_set.add("eee")#添加元素"eee",如果添加相同的元素,会自动去重
#add()方法只能用于集合,用于列表会出错

(3)删除元素 remove()方法 pop()方法 clear()方法

my_set=["aaa","bbb","ccc","ddd"]
my_set.remove("aaa")
print(my_set)
#my_set.pop()随机取出一个元素
my_set.clear()#清空集合
set1={1,2,3}
set2={1,5,6}
set3=set1.difference(set2)#输出结果为2,3,有点类似于离散数学的差集
set1.difference_update(set2)#消除和set2内相同的元素,set1发生变化,set2不发生变化

(5)两个集合的合并(自动去重)union()

set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)#结果是1,2,3,5,6#会自动去重
len(sat1)#统计集合set1的元素数量

八:python 循环

1、以一个简单的示例;注意;break和continue的区别

(1)break:遇到break退出循环

(2)continue:遇到continue跳出当前循环;进入下一次循环

import random
all_choices = ['剪刀', '石头', '布']
win_dict = [('剪刀', '布'), ('石头', '剪刀'), ('布', '石头')]
data1=0
data2=0
count=3
while count:
    player_choice = input("请出拳(剪刀/石头/布): ")
    computer_choice = random.choice(all_choices)
    print("电脑出的是", computer_choice)
    print("玩家出的是", player_choice)
    if player_choice == computer_choice:
        print("平局")
    elif ['player_choice','computer_choice'] in win_dict:
        print("电脑赢")
        data1+=1
    else:
        print("玩家赢")
        data2+=1
    count-=1
if data1>data2:
    print("最终结果为电脑胜利",end='')
else:
    print("最终结果为玩家胜利",end='')

九:python文件操作

1、打开文件


#打开文件的两种方式
f=open("文件名/文件路径","要进行的操作",encoding="utf-8")
#其中utf-8可以省略不写
with open("文件名/文件路径","要进行的操作",encoding="utf-8") as f:
#这两种的区别,第一种需要进行手动关闭文件,里面没有内置关闭f.close
第二种内置关闭,不需要手动关闭

2,文件相应的操作

(1)文件的读操作a(在文件读模式中,如果文件不存在,则会发生异常)

#read()读取文件中全部的内容
#readlines()读取文件中的全部内容并以列表的形式输出
#readline()是将文件内容一行一行的读取
#文件读取操作中从在指针的问题,这里需要注意以下
with open("1.txt","r") as f:
  print(f.read())
  print(f.readlines())
  print(f.readline())

(2)文件的写操作w(如果文件不存在,在写模式中会自动创建这个文件,不会出现读操作中异常)

#在文件写操作中,需要注意的是,写入内容后不能直接查看文件中的内容,需要将文件关闭,然后重新打开,换到读操作才可以查看文件里的内容
with open("1.txt","w") as f:
    f.write("我喜欢你")
with open("1.txt","r") as f:
    print(f.readlines())#输出的内容是"我喜欢你”

(3)文件的追加操作a(在原有的基础上追加内容)

#文件的w,是清除原来的内容重新写入,而文件的a是在原有的内容上进行追加操作
with open("1.txt","w") as f:
    f.write("我喜欢你")
with open("1.txt","r") as f:
    print(f.readlines())
with open("1.txt","a") as f:
    f.write("我也喜欢你")
with open("1.txt","r") as f:
    print(f.readlines())

十:python异常处理

1、python异常捕获

try:
    with open("2.txt","r") as f:
        print(f.readlines())
except:
    print("存在异常,2.txt文件不存在")
else:
    print("异常不存在,继续读取文件中的内容")
finally:
    print("无论文件存不存在,我都要执行这个命令")

十一:python函数定义

十二:python 调用库

(1)from ... import ... as f

from time import sleep#从time模块中调用sleep 函数
from time import sleep as f #把sleep名字变为f,出现函数名字太长是可以用到
print("开始")
sleep(2)
#f(2)相当于sleep()
print("结束")

(2)import ...

#使用import直接调用模块
#可以按ctrl查看模块time具体详情
import time
print("开始")
time.sleep(2)
print("结束")

(3)第三方包下载方法

1,通过python里面的pip程序进行安装

#打开cmd命令框
#下载命令 pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/
#卸载命令 pip uninstall nump
#查看下载的模块或者包 pip list
#更新pip pip --outdated
#查看pip的安装位置 where pip

2,通过pycharm进行安装第三方软件包

标签:专项,新手村,name,元素,list,算法,tom,print,my
From: https://www.cnblogs.com/gsupl/p/18389274

相关文章

  • 算法专项—码蹄集
    根据对码蹄集新手村的刷题经验;此片文章对python基本的语法进行简单的总结!一:python输入输出1、python中使用print函数输出语句;默认print输出会打印回车;在python中双引号和单引号的作用是相同的!print("gsupl")print("gsupl","yyds",sep='****')#用****分割print("gsupl"......
  • 「代码随想录算法训练营」第四十九天 | 图论 part7
    目录最小生成树的解题prim算法举例说明(来自代码随想录)题目:53.寻宝Kruskal算法举例说明(来自代码随想录)题目:53.寻宝最小生成树的解题最小生成树类型的题目主要用于解决所有节点的最小连通子图的问题,即:以最小的成本(边的权值)将图中所有节点链接到一起。最小生成树可以使用prim算......
  • 算法设计与分析:实验二 分治法——最近点对问题
    实验内容:对于平面上给定的N个点,给出所有点对的最短距离,即,输入是平面上的N个点,输出是N点中具有最短距离的两点。要求随机生成N个点的平面坐标,应用蛮力法编程计算出所有点对的最短距离。要求随机生成N个点的平面坐标,应用分治法编程计算出所有点对的最短距离。分别对N=100000—10......
  • sha-256算法,生成固定长度的字符串
    SHA-256(安全哈希算法256位)是一种广泛使用的加密哈希函数,它会将输入的任意大小的数据转换为固定长度的256位(32字节)哈希值。SHA-256是SHA-2系列算法的一部分,由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布。SHA-256的主要特点包括:固定长度输出:无论输入数据的......
  • Java中的并发控制算法:如何实现高效的锁机制与无锁编程
    Java中的并发控制算法:如何实现高效的锁机制与无锁编程大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在多线程环境中,如何保证数据的正确性和一致性是个重要的问题。为了解决这个问题,Java提供了多种并发控制算法,主要包括锁机制和无锁编程。本文将介......
  • 基于协同过滤算法的电影推荐系统的设计与实现(论文+源码)_kaic
    摘 要现在观看电影已逐渐成为人们日常生活中最常见的一种娱乐方式,人们通常会在周末或在休息、吃饭时间不由自主地在各种视频软件中搜索当前火热的影视节目。但是现在的视频软件电影推荐功能不够完善,所以需要开发出一套系统来使用户只需要简单操作就能找到喜爱的影片。针对这......
  • C#学习笔记本--第三篇(排序算法之归并排序)
    一、基本原理://归并=递归+合并//数组分左右 //左右元素相比较//满足条件放入新数组//一侧用完放对面//递归不停分分完在排序//排序结束往上走边走边合并//走到头顶出结果//归并排序分为两部分//1.基本排序规则//2.递归平分数组//递归平分数组://不停地分割......
  • js逆向之常用算法
     [Python]encode&decodefromurllibimportparse#url进行编码与解码url='你好啊'url_encode=parse.quote(url)print('url编码后:',url_encode)url_decode=parse.unquote(url_encode)print('url解码后:',url_decode)url_encode......
  • Java中的分布式一致性与共识算法
    在分布式系统中,节点之间必须就某些值达成一致。但由于网络的不可靠性、节点故障以及其他不可预测因素,实现一致性变得极为复杂。共识算法应运而生,旨在解决这一难题。本文将深入探讨两种主要的共识算法——Paxos和Raft,解释其原理,并提供Java代码示例。此外,我们还将对比它们的优缺......
  • 分享丨【题单】贪心算法(基本贪心策略/反悔/区间/字典序/数学/思维/构造)
    作者:灵茶山艾府链接:https://leetcode.cn/circle/discuss/g6KTKL/一、贪心策略有两种基本贪心策略:从最小/最大开始贪心,优先考虑最小/最大的数,从小到大/从大到小贪心。在此基础上,衍生出了反悔贪心。从最左/最右开始贪心,思考第一个数/最后一个数的贪心策略,把n个数的原问题转......