强烈推荐!!Python系列专栏更多内容汇总可以点击下面跳转链接查看
Python基础语法+算法模板+例题分享专栏导航
文章目录
前言
题主目前大三cs学生,为了保研报了py组的蓝桥杯想水个奖,后面会更新python的基础语法、算法与一些题目和理解。更新顺序是先语法,待题主回忆完所有的python基础语法后更新python的基础算法模板,之后会更新蓝桥杯、天梯赛的一些使用python完成的题目。由于水平有限,可能会出现错误,欢迎各位大佬执教!!!
ps:因为题主有基础,写文章本意在回忆,本文章有部分非常基础的函数跳过了讲解,如果纯新手可以看其他大佬的文章,或者直接谷歌搜索即可
1. 基础输入技巧
1.1 input()函数
input(): 该函数接受一个标准输入数据,返回为 string 类型。
下面是使用input()接收多个值的例子:
a,b,c = (input("请输入三角形三边的长:").split())
a= int(a)
b= int(b)
c= int(c)
#计算三角形的半周长p
p=(a+b+c)/2
#计算三角形的面积s
s=(p*(p-a)*(p-b)*(p-c))**0.5
#输出三角形的面积s
print("三角形面积是%s" % s)
输出的结果如下:
注意:input()接收的是字符串,接收后赋给变量依旧是字符串,因此当你需要使用这个变量的时候,记得把类型转换一下,比如上面的例子,a、b、c需要的类型是int,则input接收后分别对a、b、c进行int(a)强转,得到需要的数据类型
1.2 使用map()函数实现输入赋值
为了解决input()给变量赋值后,变量只能是string类型的问题,引入了map(int, input().split()),表示通过split空格把输入内容进行分离,并以int的数据类型进行赋值
a,b = map(int, input().split())
print(type(a))
print(type(b))
输入与输出的结果如下:
2. 基础输出技巧
2.1 直接输出
蓝桥杯一般用print就可以实现所有输出的功能,下面是基础使用方法,对于代码中出现的数据结构可以先不理解,后面会有详细讲解
print("runoob") # 输出字符串
#输出结果:runoob
print(100) # 输出数字
#输出结果:100
str = 'runoob'
print(str) # 输出变量
#输出结果:runoob
L = [1,2,'a'] # 列表
print(L)
#输出结果:[1, 2, 'a']
t = (1,2,'a') # 元组
print(t)
#输出结果:(1, 2, 'a')
d = {'a':1, 'b':2} # 字典
print(d)
#输出结果:{'a': 1, 'b': 2}
2.2 格式化输出(和c++差不多)
代码如下(示例):
print("the length of %s is %d" %('runoob',len('runoob')))
输出结果如下:
注意:这里的%s和%d其实就是占位符,在输出后使用 %(占位内容1、占位内容2),即可实现对展位内容的格式化输出
这里想说一下对于浮点数的格式化输出,因为有的题目会对浮点数要求四舍五入,其实这就和c++的printf差不多,下面给出一个例子
pi = 3.1415926 print("%.3f" % pi)
需要注意的是,python中没有c/c++中的double型,写算法时浮点数类型只有float,因此在输出的时候以%f作为浮点数的占位符,需要保留几位小数(x位),即为%.xf
对于浙大的PAT攀拓和天梯赛,有部分题是给个固定位数的编号,比如00123(五位数编号),这种题可以使用整型int,比如123,在输出的时候在前面补0即可,下面给一个固定位数补0的操作:
a = 123
print("%05d" % a)
输出的结果为:00123
其中,"%05d"表示的意思是,输出的时候长度是5,如果长度不是5,则用0补。显然,123长度为3,因此补两个0,所以结果是00123。
那么有小伙伴可能会问,那如果a = 123456,长度为6,输出时候仍然为5位补0呢?
a = 123456
print("%05d" % a)
输出的结果为:123456,可以看到,如果变量本身的长度大于输出设定的范围,那么则输出变量本身
2.3 print()结尾换行/结尾空格/结尾啥也没有
print 会自动在行末加上回车, 如果不需回车,只需在 print 语句的结尾添加一个逗号 , 并设置分隔符参数 end,就可以改变它的行为。
(1)以换行结尾(自动):
for i in range(0,3):
print (i)
输出结果:
(2)以空格结尾
for i in range(0,3):
print (i, end=" ")
输出结果:
(3)结尾什么都没有,下一次输出完的结果直接在本次输出完的结果后
for i in range(0,3):
print (i, end="")
输出结果:
可以见得,end=啥,就以啥结尾,默认为换行结尾