本博客原文地址:https://www.cnblogs.com/BobHuang/p/14341687.html,原文体验更佳
如果你是一名浙江2020级及以后的高中生要学习Python,抑或是一位科学工作者要学习Python,抑或是一名熟悉C/C++想扩展自己的技术栈来学习Python,抑或是一位小朋友在学习Python,以下文章对你学习Python编程将非常有帮助。
天天快乐编程在线评测平台现有6000多题,且支持Python语言,各种层级题目均具备。所以这里以天天快乐编程TZOJ为例,带您一起尝试用Python刷在线评测平台(Online Judge),提升自己的编程技巧及解决问题的能力。天天快乐编程信息技术分类,以下文章所提到的题目均已按顺序在此分类里。
一、Python语言简介
Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,也就是龟叔,顺便一提,Van 这个姓氏代表是贵族后裔。
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。别人帮你造好了大楼,你拿来装修后做什么是你的事情。Python是面向对象的语言,是一种抽象的软件开发的思想方法,在Python里一切皆对象。
Python是解释型语言,他会将将源代码逐条转换成目标代码同时逐条运行。而C/C++等编译型语言会一次性将代码转换为目标代码,所以运行速度更快。最广泛使用的Python解释器是CPython,其是用C语言实现的Python解释器。Python语法很多来自C,但是其又增添了一些语法规则,如强制缩进。
Python可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节,所以受科研工作者深度热爱。Python简单易学,所以作为非计算机专业学生的入门语言也是非常友好的,不用担心学不会。Python具有非常丰富的模块,它可以帮助你处理各种工作。比如OCR识别,一行代码,如pytesseract.image_to_string(“sample.jpg”),即可完成对"sample.jpg"这个图像文件的文字识别。使用几行代码能完成对表格的复杂处理。当然他的功能远不如此,图形界面开发、系统网络运维、科学与数字计算均可用Python轻松完成。
Python取各语言之长,前面我们已经提到过其语法很多来自于C,其标准库的正则表达式参考了Perl,而lambda, map, filter, reduce等函数参考了Lisp。
如果你是计算机专业,我建议你从C学起,老老实实将数据结构与算法学踏实,这对你学习Python将会非常有帮助。无论学习什么语言,算法都是编程的核心。
二、顺序结构
1.输出语句
1452: C语言实验题――Hello World要求我们打个招呼,这句话也是学习每个编程语言的开始。我们想要让程序显示内容,需要使用对应的语句,Python对应的输出语句为print(“你要说的内容”),我们将你要说的内容换为你要说的话即可,中英文均可。
1452参考代码
print("Hello, World!")
print函数格式:print(*objects,sep=’ ‘,end=’\n’)
功能:可以一次输出多个对象。多个参数(object复数)之间用逗号分割,输出的多个对象之间的分隔符默认为一个空格,所有信息输出之后添加的符号默认为换行符。
然后你可以划到页面底部,点击提交按钮,然后将运行语言选择为Python3,并将你的代码粘贴进去,点击提交后即可看到结果。
提交后显示红色的Accepted代表你通过了这个题目,绿色的Wrong Answer代表你写错了(有可能是大小写错误,以及少了标点),蓝色的Compile Error代表你写的代码没有运行或者没有将语言改为Python3,粉红色的Presentation Error请检查是否多了一个空格,或少了一个空格。
通过后你可以尝试下以下题目
6977 输出平台地址、6176 武汉加油!中国加油!、5980 抹布的水印、6903 tencent’s 水题1 、6990 say sorry to teacher、6953 最优价钱问题
那如果要输出三遍呢,比如5221: 重要的话说三遍,要求我们将I’m gonna WIN!说三遍,聪明的你可以尝试一下。
5221参考代码1print("I'm gonna WIN!")
print("I'm gonna WIN!")
print("I'm gonna WIN!")
我们将代码复制三遍就可以了,为什么全写在""内不可以呢,因为你需要换行,这个可以参考下面代码,\n表示换行,print默认输出之后添加的符号默认为换行符,之后我们还会介绍换行 5221参考代码2
print("I'm gonna WIN!\nI'm gonna WIN!\nI'm gonna WIN!")
字符串可以 "+",也可以"*",使用他们同样可以。 5221参考代码3
print("I'm gonna WIN!\n"+"I'm gonna WIN!\n"+"I'm gonna WIN!")
5221参考代码4
print("I'm gonna WIN!\n"*3,end="")
通过后你可以尝试下以下题目
6762 开心的yym、6942 给yym加油打气、6962 打印任务
2.输入语句
7182: 我的第一个程序输入你的姓名,然后将输出的姓名输出到屏幕上显示。输出我们可以用print,那么输入我们怎么做呢,可以使用input()语句。输出空格需要我们控制,我们可以使用sep控制空格
7182参考代码
# 用name保存输入内容
name = input()
print("Hello,",name)
注释
注释主用于解释程序代码,目的是提升代码的可读性。在Python程序中,单行注释以“#”开头。注释部分分会被编译器略去,从而不被计算机执行。
input函数
格式:input([prompt])
功能:读取从键盘输入的字符串,若给定提示字符串(参数prompt),则直接输出。
变量是指其值在程序执行过程中会发生变化的量,它一般需要先定义在使用,比如上面我定义了name变量将输入的名字保存了下来。
赋值语句
赋值语句是最基本的语句,它的作用就是将表达式的值赋给变量。
格式:变量名=表达式。其中“=”为赋值号
功能:把赋值号右边表达式的计算结果,存储到赋值号左边的指定的变量中。
在Python中,给变量命名,要遵循以下规则:
1)只能包含字母、数字和下划线。注意字母区分大小写。注:Python3支持中文变量名,但不建议使用
2)不能以数字开头,不能与关键字同名。
通过后你可以尝试下以下题目
5600 打招呼、5877 输出第二个数、5681 简单输入输出、6933 演讲打招呼、6439 字符菱形
5681提示: 简单输入输出需要读入多个元素,设置多个变量依次读入并输出。
5681参考代码name = input()
age = input()
NO = input()
print("name:",name,sep='')
print("age:",age,sep='')
print("NO:",NO,sep='')
3.简单计算
1001: 整数求和给我们两个数字,要让我们对他们进行求和。
如果我们读入后直接将a+b,他会输出两个数字相连接,比如1和2,会输出12。
1001错误代码
a=input()
b=input()
print(a+b)
那么如何让其输出3呢。数据具有不同的类型,不同的类型也对应不同的特征,input得到的类型为字符串类型。
Python的常用数据类型–表示数字
数据类型名称 | 数据表示形式 |
---|---|
整形(int) | 数学中的整数,如0,1,-2等 |
浮点型(float) | 数学中的小数,如2.0,3.14,-6.8等 |
本题我们要计算两个整数的和,我们可以用int()将其转换为对应的类型。
Python常用的数据类型转换函数
int([x]):将字符串或者数字转换为整数。
float([x]):将字符串或数字转换为浮点数。
例如: >>> float(“25”)
25.0
1001参考代码1
a=input()
b=input()
print(int(a)+int(b))
1001参考代码2,更建议读入后就进行转换
a=int(input())
b=int(input())
print(a+b)
通过后你可以尝试下以下题目
6442 bth之潘家小镇3 、6783 三角形的周长、6779 CJC的取信问题、5974 多大了
4.复杂数字计算
除了可以进行加减运算外,四则运算的中乘除也是可以的,乘号用的是"*“,位于数字8的上方,除号用的是”/",位于右shift的左侧。
Python常用算数运算符
运算符 | 表达式 | 描述 | 示例 | 优先级 |
---|---|---|---|---|
+ | x+y | 将x与y相加 | 5+2结果为7 | 3 |
- | x-y | 将x减去y | 5-2结果为3 | 3 |
* | x*y | 将x与y相乘 | 5*2结果为10 | 2 |
/ | x/y | 将x除以y,结果为浮点数 | 5/2结果为2.5 | 2 |
// | x//y | 将x除以y,取整数部分 | 5//2结果为2 | 2 |
% | x%y | 将x除以y,求余数 | 5%2结果为1 | 2 |
** | x**y | 求x的y次幂 | 5**2结果为25 | 1 |
注意:1.Python的除法规则和其他语言不一样。2.需要提高优先级请使用() | ||||
5887: 长方形的周长,长方形周长为(长+宽)*2 | ||||
5887参考代码 |
a=int(input())
b=int(input())
print((a+b)*2)
通过后你可以尝试下以下题目
6904 tencent’s 水题2、7131 圆的直径、6780 CJC的生产垃圾问题、6874 买东西、6659 bth的铁丝问题、6634 bth的数学问题
1494: C语言实验题――温度转换要求给定一个华氏温度,输出摄氏温度。
本题输入为小数,所以类型为float,但是要求我们保留两位小数,这里可以用C语言的格式控制%.2f,之后跟上变量名称
格式化函数format()
格式:format(value[,fomat_spec])。
功能:将数据按foramt_spec格式规划表现形式。例如,浮点数格式[width].[.precision]表示宽度和精度
例如: >>> x=26.6666666666666668
>>> printf(fomat(x,‘.2f’))
26.67
1494参考代码1
F=float(input())
print(format(5*(F-32)/9,'.2f'))
也可以使用C语言的语法
1494参考代码2
F=float(input())
print('%.2f'%(5*(F-32)/9))
其他格式化参数
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀O)
x 以十六进制形式输出无符号整数(不输出前缀OX)
u 以十进制形式输出无符号整数
f 以小数形式输出浮点数
e 以指数形式输出浮点数
g 以%f%e中较短的输出宽度输出浮点数
c 输出单个字符
s 输出字符串
标志字符为-、+、#、空格四种,其意义:
- 结果左对齐,右边填空格
+ 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
\# 对c,s,d,u类无影响;对o类, 在输出时加前缀。对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
输出的格式控制
%nd n为指定的输出字段的宽度。如果数据的位数小于n,则左端补以空格,若大于n,则按实际位数输出。
%0nd n为指定的输出字段的宽度。如果数据的位数小于n,则左端补以0,若大于n,则按实际位数输出。
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
通过后你可以尝试下以下题目
7133 圆的周长、7132 圆的面积、5972 单位转换、7020 温度转换1、6784 温度转换2、6969 温度转换3、6970 温度转换4、6971 温度转换5
如果多个变量呢,如2982: 圆的直径、周长和面积这一题,我们可以一个一个输出
2982参考代码
PI=3.1415926
r