赞
踩
现在正式进入蓝桥杯的刷题啦,第一次用python来做算法题,因为我之前其实都是用C++来做题的,但是今年的话我打算换python来试试,很明显因为也才这学期接触python 加上之前C++做题也比较菜,所以我打算用python重新来做题,就从最简单的开始,熟悉python的语法。然后在这里的话就是记录笔记,十分潦草哈哈哈哈,方便自己后面复习哈哈哈哈。
题单目录

python里,用三引号开头和结尾可以起到输出带格式文本的效果。
- print(''' ********
- ************
- ####....#.
- #..###.....##....
- ###.......###### ### ###
- ........... #...# #...#
- ##*####### #.#.# #.#.#
- ####*******###### #.#.# #.#.#
- ...#***.****.*###.... #...# #...#
- ....**********##..... ### ###
- ....**** *****....
- #### ####
- ###### ######
- ##############################################################
- #...#......#.##...#......#.##...#......#.##------------------#
- ###########################################------------------#
- #..#....#....##..#....#....##..#....#....#####################
- ########################################## #----------#
- #.....#......##.....#......##.....#......# #----------#
- ########################################## #----------#
- #.#..#....#..##.#..#....#..##.#..#....#..# #----------#
- ########################################## ############
- ''')


在python中怎么输入两个以空格隔开的整数
- a,b = list(map(int,input().split()))
- print(a+b)

/ (常规除)
如:5 / 2 = 2.5
解释:平常除法是什么结果就是什么结果。
//(地板除)
如:5 // 2 = 2 (5 ÷ 2 = 2.5)
5 // 3 = 1 (5 ÷ 3 = 1.6666666666666667)
解释:地板除,只去除完之后的整数部分。
% (取余数)
如:5 % 2 = 1 (5 - 2*2 = 1)
4 % 2 = 0 (4 - 2*2 = 0)
7 % 3 = 1 (7 - 3*2 = 1)
13 % 5 = 3 (13 - 5*2 = 3)
解释: 就是一个取余数的操作,除开被除数的倍数,余下几就得几。上面红色的数字带表被除数的倍数。
- a,b = list(map(int,input().split()))
- sum = a*10 + b
- num = sum//19
- print(num)

一行输入多个整数也可以用map
- a,b,c,d = map(int,input().split())
- begin = a*60+b
- end = c*60+d
- time_ = end-begin
- time_hour = time_//60
- time_min = time_%60
- print(f'{time_hour} {time_min}')

这里涉及到有关小数点保留的问题
- a = int(input())
- if a>150:
- if a>400:
- sum = 150*0.4463 + 250*0.4663 + (a-400)*0.5663
- else:
- sum = 150*0.4463 + (a-150)*0.4663
- else:
- sum = a*0.4463
- print('%.1f' %sum)

多行数据我用的是循环
- s = []
- flag = 1
- day = 1
- for i in range(7):
- a,b = map(int,input().split())
- sum = a+b
- s.append(sum)
- for i in range(7):
- if s[i]>8 and s[i]>s[day-1]:
- flag = 0
- day = i+1
- if flag:
- print(0)
- else:
- print(day)
-


这里关于min_price的大小我真的花了好长时间才发现,不然一直都在WA。变量的范围真的要注意!!!!
还有这里涉及到取整的问题。
import math
- 向上取整:math.ceil()
- 四舍五入:round()
- 向下取整:math.floor()
- num = int(input())
- s = []
- min_price = 10000000
- import math
- for i in range(3):
- a, b = list(map(int, input().split()))
- price = math.ceil(num / a) * b
- if price < min_price:
- min_price = price
- print(min_price)

这一道题的话就是遍历三位数,但是可以通过数学比例来缩小循环的范围。
还有一个数学技巧就是怎么才算是用上了所有1—9的数字,可以通过和以及乘积来规定。
- for a in range(123,333):
- b = a*2
- c = a*3
- a1 = a % 10
- a2 = (a//10) % 10
- a3 = a//100
- b1 = b % 10
- b2 = (b // 10) % 10
- b3 = b // 100
- c1 = c % 10
- c2 = (c // 10) % 10
- c3 = c // 100
- if a1+a2+a3+b1+b2+b3+c1+c2+c3==45 and a1*a2*a3*b1*b2*b3*c1*c2*c3==1*2*3*4*5*6*7*8*9:
- print(f'{a} {b} {c}')
今天有点偷懒哈哈哈哈,明天尽量做多一点,争取把这些简单题快速过一遍,熟悉熟悉python的语法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。