2022年 11月 8日

python基本概念以及和c语言比较(

python基本概念以及和c语言比较(这里主要用于在掌握c语言的基础上快速掌握python语言基本用法)

一.python语言基本要素
1.字符集
字符是构成程序设计语言的最小语法单位。
c语言字符集由字母、数字、空格、格式字符和特殊字符组成,这里python和c语言完全一致。
字符组成:
数字:0~9
大小写英文字母以及下划线:a到z,A到Z
格式符:空格、水平制表符(HT)、垂直制表符(VT)、换页符(FF)
特殊字符:!#*()-+=[]:””.
2.标识符
Python中的标识符是用于识别变量、函数、类、模块以及其他对象的名字
标识符可以包含字母(26个大小写英文字母)数字以及下划线(_),但是必须以一个非数字字符开始
标识符大小写敏感,和c语言一致
3.关键字
关键字是Python中具有特殊含义的标识符,程序员不能用来定义用户的变量名、函数名等。
如:if、elif、FALSE、TRUE、while、for,break,continue,is,in,not,import,from,def,
giobal,or,and…
这些用于循环判断或者其他功能的功能性单词都不能用于定义名字
总结:在这三大点中只有关键字和c语言不同,因为python中的循环判断和一些函数语句和c语言不同,其他两点基本一致。
在这里插入图片描述
转义字符用法和c语言中一样,直接在输出语句字符串中使用达到效果。这是python中转义字符的作用表。
在这里插入图片描述
python中字符串还可以进行一下操作:(和c语言略有区别)
在这里插入图片描述

二、列表、元组、字典
列表、元组、字典这三个结构是python中的基本组成结构,掌握着三个结构基本能解决一般的编程类问题。
学过数据结构的都会知道,数组是同类元素组成的不可变的线性或者网状组合,当然数组也可能是多维的。这里我们也只讲二维以下主要是一维的用法。为啥先讲数组的定义呢?因为python中列表和元组与数组类似。我们一一分析:
列表
定义方式
列表名=[元素1,元素2,元素3…]

list=[1,"二",3,"四",5]
  • 1

列表和数组主要有两大区别,区别一,列表与列表之间是可以相加的,当然c语言中的数组也可以相加,我说的列表中的相加是指把第二个列表的元素直接挪移到第一个列表后面的这种相加,而且不需要使用循环语句,直接用“+”。在这个操作中列表的长度发生了变化,这说明列表是可以变长度的但是数组一旦被定义就不可以更改长度和数组里元素的类型,当然通过新建更长的一个空白数组可以把两个数组合并成一个。除了相加的操作也可以相减,减去一样的元素。区别二,列表中的元素可以是多种类型,就像上面的例子,列表中可以同时包括数组、字符串。也可以包括其他列表、元组、字典,当然,这种用法属于二维或多维度用法。数组中是只能出现一个类型的元素的,并且一旦定义了这个数组的维度,便不能再在内容里放新的数组。比如int[]={{…},{…}}定义的是一维数组,后面写二维数组就不行了。
代码列子如下:

list1=[1,"你好",[2,3],{1:"小明"},(1,2,3)]#列表一同时包含数字、字符串、其他列表、字典、元组
print(list1)
list2=[2,3,4]
list1+=list2
print(list1)
length=len(list1)#用len()函数截取列表长度
for i in range(length):#range()函数创建一个从0到length-1的数字列表
    print(list1[i],end="\t")#列表元素用list[下标]遍历,和数组类似
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

运行结果如下:
在这里插入图片描述
元组
元组实际上就是不可以相加相减并且元素内容也不可以改变的列表,更接近与c语言中的数组,甚至比数组更加严格,因为一旦定义不但长度不能改变并且元素内容也不可以改变。也有不严格的地方,和列表一样,元组中也可以定义任何类型的元素。
定义方式:元组名=(元素1,元素2…)

tuple=(1,"二",["你好,我是列表"],{1:"你好,我是字典"},("你好,我是元组"))
  • 1

字典
字典和c中的图(map)类似,定义方式为:字典名={键值1:元素1,键值2:元素2,键值3:元素3…}
一般字典的使用方式主要是通过键值来查找或者存储数据。我给你举一个例子:

dictionary={1:"我是字典元素,键值是1","nana":"我是字典元素,键值是nana"}
print(dictionary[1])#通过键值查找字典元素
print(dictionary["nana"])
dictionary["nana"]+="shanshan"#存储特定元素到键值对应的元素位置
print(dictionary["nana"])

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果如下:
在这里插入图片描述

三.python的缩进
和c语言最主要的区别!!!在python中没有{},这里是**直接在前面加tab键(空格)**表示大括号的。
举一个例子:
c语言

void main(){
int i;
scanf("%d",&i);
if(i%10==10)
{
printf("你知道你和天上那颗闪闪发光的星星相比有哪些不同吗?");
}else
{
printf("在我心里你就是那颗闪闪发光的星星。");
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

1.在c语言中用了封号“;”和“{}”,但是在python中没有“;”和“{}”。
“;”直接省略,“{}”用tab键(空格的一种,叫缩进)代替
2.python中不用定义main函数直接写代码体就相当于是main函数。
3.python中不用定义变量i的数据类型,直接在输入时强行转化成你想要的输入类型。输入函数input默认输入是字符类型。
python

i=int(input())
if i%10==10:
	print("你知道你和天上那颗闪闪发光的星星相比有哪些不同吗?")#这里先打一个tab键空了两格,表示c语言中的一个{}
else:#退掉tab键,表示else没在if的{}里
	print("在我心里你就是那颗闪闪发光的星星。")#再打tab键缩进,表示print在else的大括号里
  • 1
  • 2
  • 3
  • 4
  • 5

总结:缩进相当于c语言的大括号,大括号可能有多个嵌套,缩进也同样要多次
四、python中导入包
python中导入包比较简单,直接import空格包名
如:

import math
i=4
j=math.sqrt(i)
print(j)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
在这里插入图片描述

cmath库和math函数一致,唯一区别在于cmath库用于复数运算。
五、python的判断语句
c语言中用if else,if 、else if、 else if、 else判断。python中同样用if else,变化部分 if elif elif else
用法的主要区别在于:
if和else后不加小括号,直接打一个空格表示小括号,判断语句这一行最后加上“:”表示这是一个判断语句,下面会自动缩进。
如c语言中

String s;
scanf("%s",&s);
if(s=="微风吹动绿叶"){
printf("暖阳明媚我心");
}else if(s=="暖暖的阳光照在大地上"){
printf("这是一个美好的仲夏");
}else{
printf("喜欢夏天!")
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

python中

s=input()
if s=="微风吹动绿叶":
	print("暖阳明媚我心")
elif s=="暖暖的阳光照在大地上":#else和elif后都要加:
	print("这是一个美好的仲夏")
else:
	print("喜欢夏天!")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

六、python循环语句
python的循环语句和c语言相比同样有for循环和while循环,只是for和while后直接空格加判断语句最后加上封号。这里和判断语句中的用法类似。
循环语句主要用于遍历操作列表、元组、字典。
在这里我着重强调一下python中的in和not in
用法如下:

i=1
list=[1,2,3]
if i in list:
	print("列表中存在i")
elif i not in list:
	print("列表中不存在i")
else:
	print("电脑出错")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

in和not in是python中的特有关键字,可以检测元素在列表元组字典中是否存在。in常用于遍历
如下:

for i in [0,1,2,3]:
	print(i)
  • 1
  • 2

这里i会从左到右依次等于列表中的值。结果如下:
在这里插入图片描述
range(n)函数可以快捷生成一个从0到n-1的列表,这样就可以替代c语言中的for(int i=0;i<n;i++)
for循环遍历列表:

list=[1,2,3,4]
length=len(list)#取得列表长度
for i in range(length):
	print(list[i],end="\t")#一般默认end="\n"所以每用一个print就会换一行,我这里修改默认值为"\t"每使用一个print后打一个tab空格
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
while循环遍历列表
while和c中类似,只是语法有所区别。

list=[1,2,3,4]
length=len(list)#取得列表长度
i=0;
while i<length:
	print(list[i])
	i+=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果如下:
在这里插入图片描述
在循环中break和continue用法和c语言一样
七、io流文件读写
首先实现文件读写先把文件放到程序文件夹下,就可以直接写文件名调用文件。这种只用文件名的打开方式是使用的相对路径。还有一种不把文件放在程序文件夹下,需要把文件地址包括文件名全写上去,这种使用绝对路径。
文件打开方法如下:
在这里插入图片描述
在这里插入图片描述