文章目录
一、前言
在学python之前,感觉还是有一点担心学不好的,但当你真正开始学的时候,才能发现里面的神奇之处,我觉得相比于c语言,python跟pascal的某些用法更为相似,所以有编程基础的同学,学习python还是比较容易上手的
二、观察
我们可以对比以下c,python,pascal编程的格式
就这一题所展示三种编码
题目:现有n位同学,已知n的同学的成绩,找到其中最高分
C语言编码:
#include<stdio.h>
int main(void)
{
int n,max=0,a=0,i=0;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%d",&a);
if (a>max)
{
max=a;
}
}
printf("%d",max);
return 0;
}
pascal编码(由于md未提供pascal代码块,由c代码块替代)
var i,n,max,a:longint;
begin
read(n);
for i:=1 to n do
begin
read(a);
if a>max then max=a;
end;
write(max);
end.
python编码:
n=int(input())
max=0
for i in range(n):
a=int(input())
if a>max:
max = a
print(max)
可见三者的格式还是有略微差别的,python没有pascal的begin-end框架,也没有c语言的花括号{}的框架,主打的是一个缩进,即同一语言块的放在同一缩进内。仁者见仁,智者见智,我打python有个坏毛病,喜欢打分号,习惯了。
特别注意一点,变量使用前赋给初始值,要不没有这个变量喽
三、学习
1、常用变量数据类型
整数 int
浮点数 float
复数 complex
布尔数 bool
字符串 string
列表 list
元组 tuple
集合 set
字典 dictionary
2、使用
①输入
输入时,形式为input(),此时变量并不是你想要的数据类型
可使用 对应的数据类型函数
即
int(input())为整数类型
同样
float(input())为浮点数类型
②占位
与c语言同理
用%d,%s,%f,表示需要加入的数据类型
同样%.2f也是保留两位小数的意思
③输出
记住,与pascal和c语言不同的是
python的输出是会自动换行的
不需要writeln与\n的帮助
如不需要换行,则可+end
例如:print(“hello”,end=‘’)
3、函数(def与lambda)
即c语言中的函数,与pascal中的子程序概念一致
def test(x,y):
sum = x+y
return sum
test(5,6)
用def定义,有个不一样的是
def test(a,b=10)
def test(a=20,b=10)
def test(a,*b)
观察,发现python的函数里的值可以设置初始值,如果调用是没有赋值,则按初始值计算
*b的意思最为特殊,即可以容纳多余的变量,形成一个列表,如果你让调用1,2,3三个数,在函数里a=1,而b=【2,3】
再说lambda,是一个一次性的函数调用
即 lambda a,b:a+b(只有一行代码)
4、序列形式
①列表(list)
以【】为标识
初始赋值可以为
a=【】;
a=list()
支持嵌套
②元组(tuple)
元组已有的内容不可以更改
以()为表示
初始赋值可为
a=()
a=tuple()
支持嵌套
③字符串(str)
字符串的替换
语法:字符串.replace(字符串1,字符串2)
功能:将字符串内的全部:字符串1,替换为字符串2
注意:不是修改字符串本身,而是得到了一个新字符串哦
语法:字符串.strip()
字符串的规整操作(去前后指定字符串)
语法:字符串.strip(字符串)
注意,传入的是“12” 其实就是:”1”和”2”都会移除,是按照单个字符。
统计字符串中某字符串的出现次数
语法:字符串.count(字符串)
统计字符串的长度
语法:len(字符串)
④集合(set)
集合,最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序
初始赋值为
a={1,2,3}
a=set()
⑤字典(dict)
字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法:
使用{}存储原始,每一个元素是一个键值对
每一个键值对包含Key和Value(用冒号分隔)
键值对之间使用逗号分隔
Key和Value可以是任意类型的数据(key不可为字典)
Key不可重复,重复会对原有数据覆盖
5、文件
文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。用文件形式组织和表达数据更有效也更为灵活。
文件包括两种类型:文本文件和二进制文件。
文件的类型
文本文件一般由单一特定编码的字符组成,内容容易统一展示和阅读。大部分文本文件都可以通过文本编辑软件或文字处理软件创建、修改和阅读。由于文本文件存在编码,所以,它也可以被看作是存储在磁盘上的长字符串,如一个txt格式的文本文件。
二进制文件直接由比特0和比特1组成,没有统一字符编码,
文件内部数据的组织格式与文件用途有关。如png格式的图片文件,avi格式的视频文件等。
文件概述
实例:理解文本文件和二进制文件的区别。
#t表示文本文件方式
textFile = open("file.txt","rt" , encoding = "utf-8")
print (textFile.readline())
textFile.close()
#r表示二进制文件方式
binFile = open ("file.txt" ,"rb")
print (binFile.readline())
binFile.close()
文件的打开关闭
Python通过解释器内置的open()函数打开一个文件,并返回一个操作这个文件的变量,open()函数格式如下:
<变量名>= open(<文件名>,<打开模式>)
open()函数有两个参数:文件名和打开模式。文件名可以是文件的实际名字,也可以是包含完整路径的名字
文件的打开关闭
文件使用结束后要用close()方法关闭,释放文件的使用授权,语法形式如下:
<变量名>.close()
当文件关闭后,再对文件进行读写将产生I/O操作错误。
文件的打开关闭
·以文本方式只读打开一个文件,读入后不能对文件进行修改:
<变量名>= open(<文件名>,“r”)
·以文本方式可读写地打开一个文件,可以读入并修改文件。
<变量名>= open(<文件名>,“r+”)
·以文本方式打开一个空文件,写入一批内容,并保存为新文件。
<变量名>= open(<文件名>, “w”)
·以文本方式打开一个空文件或已有文件,追加形式写入一批内容,更新原文件。
<变量名>= open(<文件名>,“a+”)
·以二进制方式只读打开一个文件,读入后不能对文件进行修改。
<变量名>= open(<文件名>,“rb")
readline()方法的用法如下:
.readline()其功能是读取从当前位置到行末(即下一个换行符)并作为字符串返回,赋值给变量。通常用此方法来读取文件的当前行,包括行结束符。如果当前文件指针处于文件末尾,则返回空串。
<file>.readlines()也是一次性读入文件的函数,其结果是一个列表,每个元素是文函数,其结果是一个列表,每个元素是文件的一行。
f=open("poem.txt","r", encoding = "utf-8")
s=f.readlines ()
print(s)
f.close()
文件打开后,对文件的读写有一个读取指针,当从文件中读入内容后,读取指针会向前前进,再次读取的内容将从指针的新位置开始。
1fname = input("请输入要打开的文件:")
fo = open(fname,"r", encoding = "utf-8'
for line in fo.readlines ():
print (line)
fo.close()
.seek()方法能够移动读取指针的位置,.seek(O)将读取指针移动到文件开头,.seek(2)将读取指针移动到文件结尾。
6.绘图
本节十分有趣,后续可能会专开一个文章讲解心得
turtle库
绘图坐标体系:turtle.setup(函数…
画笔控制函数: turtle.pencolor()函数…
形状绘制函数:turtle.circle)函数…
turtle.setup()函数用于启动一个图形窗口。
turtle.setup(width, height, startx, starty)
它有四个参数,分别是:窗口宽度、高度、窗口左侧与屏幕左侧的像素距离、以及窗口顶部与屏幕顶部的像素距离。