我发现csdn上面没有那种比较系统的编程和算法讲解,所以我准备先用两到三篇文章介绍一下python的基础语法和常用api,然后再通过力扣题目,灵神的题单和codeforces的简单题目介绍一些基础的算法,然后坚持更新codeforce一些比赛的题解和一些有意思的题目,我会讲的尽可能细节,不想用py的也可以关注我,之后更新的题解我会用java,cpp,go都写一遍。有什么相关建议也欢迎讨论
本文比较适合有点编程基础的人,比如学过java,c,cpp的,不太适合刚入门编程的小白,主要在讲一些基础概念和简单的使用方法,一些经常用不到的也不会讲,比如元组这种,但可以帮助快速入门py,看完我的文章就可以打codeforce的div1比赛(bushi)
基础语法
一,输入和输出
输出:
- print()
python里面有很多种函数可以用来输出内容,但是刷算法题的话,使用print一般就够输出大多数结果了
#最基础的输出,注意这个默认打印结束后换行
print(1)
#上面的输出等于下面的
print(1, end = '\n')
#如果不换行就是
print(1, end = ' ')
#把两个字符输出到同一行
s_1 = 'abc'
s_2 = 'def'
#逗号默认是空格
print(s_1,s_2)
#加其他字符,字符串
print(s_1, '+', s_2)
还有一种是Python 3.6 引入的格式化字符串字面值(也称为 f-string)来生成一个字符串
(刷算法题目的话,用的比较少)
# 假设我们有两个变量 num1 和 num2
num1 = 5
num2 = 10
# 使用 f-string 执行算术运算并格式化输出
print(f"The sum of {num1} and {num2} is {num1 + num2}.")
输入:
- input()
输入如果不加类型转换的话,默认是字符串类型
# 基本输入,获取用户输入的字符串
input_val = input("请输入一些内容: ")
# 输入转换为整数,如果转换失败将抛出 ValueError 异常
nums_1 = int(input("请输入一个整数: "))
# 输入转换为浮点数,如果转换失败将抛出 ValueError 异常
nums_2 = float(input("请输入一个浮点数: "))
# 输入转换为字符串(通常不必须,因为 input() 直接返回的就是字符串)
string = input("请输入一个字符串: ")
# 获取单个字符,通过输入一个字符串然后取第一个字符
character = input("请输入一个字符: ")
print(input_val)
print(nums_1)
print(nums_2)
print(string)
print(character)
对于一行的输入
先介绍一下这个split()方法
# 使用 split() 方法分割字符串,默认按空白字符分割
st1 = "1 2 3"
str_split_1 = st1.split()
print(str_split_1) # 输出: ['1', '2', '3']
# 使用 split() 方法分割字符串,指定分隔符和分割次数
st2 = '1,2,3'
str_split_2 = st2.split(',', 1)
print(str_split_2) # 输出: ['1', '2,3']
利用 split()
方法处理用户输入的一列数字:
# 读取用户输入并使用空格分割成列表
input_values = input("请输入一列数字,用空格分隔: ").split()
# 将字符串列表转换为整数列表
int_list = [int(value) for value in input_values]
print(int_list) # 输出转换后的整数列表
如果输入的数字是两三个(不是很多的情况),那么可以这么写,这是列表推导式
n, m = [int(n) for n in input().split()]
如果输入的是一串数字,那么问题现在就变成了怎么把一个列表转换类型
input_value = input().split()
#转换一般可以这么写
n = len(input_value)
int_list1 = [0]*n
fo