python与c语言相比较之基本语法整理

python基本语法整理:
笔记

1.不需要semicolon(分号);

2.indentation(缩进)代替{};

3.变量不需要声明 declare type(数据类型),可以直接赋值。

print

1.不需要格式符号%d,%f…

2.字符串可以用 一对单引号或者一队双引号标注。(符合都是英文输入法下输入)

3.每次print执行完之后,都会默认换行。

print("hello worid",end='')#end=规定打印结束用什么来结尾
print('ho')

4.一个print函数打印多个字符串

print(a, b, c)
#默认字符串用空格隔开
print("hello" * 3)
#打印“”里面的内容3次
print("hello"+"world")#把两个字符串加起来

5.打印特殊符号

print("hello\\")#打印字符串里面的' " \n \t   或者位于句末的 \ 时(转义字符)
结果:hello\
string = r'\n\t'#加上 r 会自动给字符串所有 \(不包括句末的)转义
print(string)
结果:\n\t

6.打印多行字符串,使用三个单引号或者三个双引号

print('''hello
world''')#打印结果会自动换行
结果:hello
world
if else:注意冒号与缩进
if a == 1:
	print(' a == 1')
elif a == 2:
	print(' a == 2')
else:
	pass #什么都不写的时候用

1.三元操做

s = a if a < b else b#如果a<b,则s=a,否则s=b

2.其它用法

写在else里面的代码只有循环结束之后才会运行,中间有break,会直接退出,不运行else后面的代码。

for i in l:#表示一个循环 i在l里面循环
    if i == 1:
        break
    else:
        print("l列表的长度为2")

else也可以和try语句一起使用,如果try语句没有抛出异常(exception),则运行else里面的语句。

try:
    raise OSError
exception OSError:
    print('Error')
else:
    print('NO error')
运算符

1.逻辑运算符

&& 和
|| 或者
! 非

2.算术运算符

#/ :数学意义上的除法
#//:为下限除法,操作数为小数,结果依然为整数

3.比较符 < > 等

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pUKv9Vaj-1593847072144)(D:\python\python\python资源\老师ppt\图解\Python的表达式.png)]

数据类型

1.序列(sequence):列表、元组、字典
有序可变序列:列表list

#1.创建:
list = []#创建空列表
list1 = [1,2,3,4,5,6]#从0开始有序
#2.修改:list[index] = 修改值
list1[0] = 2
#3.添加元素 append(element) extend(list)  insert(index,element)
list1.append(3)#追加一个元素3,列表最后位置,一次只能追加一个
list1.extend([0,2,4])#相当于list3 = list1 + [0,2,4]
list1.insert(0,'hello')#将一个元素放到指定的位置
#4.删除元素:remove(elemt)  pop(index)
list1.remove(0)#删除元素0
list1.pop(3)#删除在index(序号或者索引在3这个位置的元素,并返回这个元素)
#5.切片(slice) [start:stop:step]
list5 =list1[1:3]#截取index从1到3不包含3的元素
list6 = list1[1:9:3]#截取index从1 到9 不包含9的元素,步长为3
list7 = list1[:]#copy
#6.比较
list1 == list2#只有所有元素相同时才为true
list1<list2#比较第一个不相同的元素
#7.检查是否有一个元素
if "hello" in list1:
    print('yes')
#8.计数给定元素出现次数
list1.count(1)
#9.一个元素第一次出现的index
list1.index('hello',3,7)#返回hello这个元素在[3,7)内第一次出现的位置
#10.倒序 
list1.reverse()
#11.排序
list1.sort()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YI1k1Qur-1593847072148)(D:\python\python\python资源\老师ppt\图解\Python的列表.png)]

有序不可变序列:元组tuple

#空元组
tuple = ()
tuple1 = (0,1,2,4)
tuple2 = (1,)#必须加逗号
tuple3 = tuple3*2
tuple4 = tuple[:2] + ('hello',) + tuple3
####元组的值不能修改 添加只能赋值如tuple4 排序用sorted  查找用index(index)  取元素 tuple4[3] 
## 元组去重  变成集合
set(tuple1)
##解包
a,b,c = tuple1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gdZCiqzH-1593847072151)(D:\python\python\python资源\老师ppt\图解\Python的元组.png)]

无序可变序列:字典dict

#创建 key是唯一的 操作key来操作dict  通过输入key,来获取,或者重新赋值,相对应的某个value。
#可以使用in 和not in,但是查找的是key,不是value。
d = {}#空字典
dict = {'key':value}
dict1 = {'apple' : '🍎', 'banana' : '🍌', a : b, 1 : 2}
#或者
dict1 = dict( ( ('apple', '🍎'), ('banana', '🍌'), (a, b), (1 , 2) ) ) 
print(dict1['apple'])
print(dict1[a])
print(dict1[1])
dict1['apple'] = 苹果 #重新赋值
#如果apple这个key不存在,python会自动创建一个item
###fromkeys(),创建一个新的dict。可以用在如果在这个字典里所有keys都对应同样的value时。
###keys(), 返回dict里面的所有keys。一般用在for里面。类似的还有values(), items()
###get(),可以自定义,当access一个不存在的key时,返回的值。
###clear(),清空一个字典。彻底清除这一个指针(e.g. dict1)所指向的数据。
###pop(key),返回,输入的key所对应的value,并且删除整个item
###popitem(), 随机删除并返回一个item
###setdefault(key, value) 在这个字典里添加一个item
###update(dict),用一个字典来更新另外一个。(只更新两个字典中都有的key,所对应的value)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJWNP6Sk-1593847072155)(D:\python\python\python资源\老师ppt\图解\Python的字典.png)]

2.集合set

#集合是无序 不支持index索引 可以增删元素 支持in, not in,集合元素不重复
set = {}#空集合不能这样定义   字典能这样定义
s = set([])#空集合
set1 = {1, 3, 4, 2, 5, 4} #没有映射关系
#或者
set1 = set([1, 3, 4, 2, 5, 4])
#set()可以接收list, tuple, string
print(set1)
#创建一个不能修改的函数 frozenset
s2 = forzenset(0,1,3,4,2,5)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e8fn9HH1-1593847072160)(D:\python\python\python资源\老师ppt\图解\Python的集合.png)]

3.字符串

字符串可以做的事情,查找时顺序(左到右 :0开始,第一个位置),逆序(右到左:-1开始,最后一个位置)

  • 改变大小写
  • 居中,左对齐,右对齐 字符串
  • 判断字符串是否以sub string结束/开始
  • 判断字符串里有无数字,字母,大小写,title(首字母大写)
  • 用指定的字符串,分隔当前字符串
  • 去掉/替换 字符串中指定的sub string

格式化字符串:按照规定的格式输出字符串format

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LLA8vN4I-1593847072161)(D:\python\python\python资源\老师ppt\图解\Python的数据输入与输出.png)]

文件操作

简单叙述可能的操作:

.close() 关闭文件
要及时关闭文件,否则写入的内容会停留在缓冲区,并没有真正的存入文件里面
.read() 按照字符个数读取,返回文件内容。默认读取全部内容。
.readline() 按照行数读取
.tell() 返回文件指针的位置 in bytes!
.seek ()移动文件指针
.list() 可以直接将文件的内容变成一个list

在for里面,甚至可以直接将文件当作一个sequence使用:

#假设有个文本文件file 已经打开
for line in file:
print(line)
#.write() 写入字符串
#.writeline() 写入字符串sequence

从文件中写入,读取的数据都是字符串。如果要写入/读取的数据类型不是字符串,可以通过int, float等来转换,或者如果数据类型不容易转换的话,可以使用pickle模块(见模块)。

with语句:使用with语句就不用自己来关闭文件

with open('file name','打开方式') as 变量名:
    执行文件操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPF6FQmp-1593847072162)(D:\python\python\python资源\老师ppt\图解\Python的文件.png)]

函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cimqhaxj-1593847072164)(D:\python\python\python资源\老师ppt\图解\Python的系统函数.png)]

模块

通过import模块,可以使用里面已经定义的函数和变量。

import random
random_num = random.randint(0, 10)

#或者
import random as r
random_num = r.randint(0, 10)

from random import * #执行这个操作,可以直接使用里面的所有变量/函数,不需要加上random.randint,可以直接使用randint
from random import randint #可以直接使用randint

为了使代码更加的简洁,也可以将一些数据(列表,字典)保存到一个单独的文件,方便调用。

OS 操作系统
使用这个模块,可以进行重命名文件,删除创建文件及目录等操作

pickle
方便不是字符串的数据,以二进制的方式,读取/写入到文件。

#写入数据
import pickle
student_file = open('student.pkl', 'wb')
#以二进制的方式打开,文件后缀写成pkl方便理解

pickle.dump(list1, student_file)
student_file.close()
#读取数据
import pickle
student_file = open('student.pkl', 'rb')

list2 = pickle.load(student_file)
student_file.close()
异常 exception

命名规则:ExceptionName

程序可能会出现很多种异常 (e.g. ValueError, OSError),针对异常作出相应的反应,就会用到try语句

try语句

如果出现了指定的异常,不会显示原有的traceback语句,而是只会执行except的代码

try:
	要执行的代码
except 指定的异常 [as 变量]: #这个变量用来存放出错的具体原因
	如果出现指定的异常,需要执行的代码
[finally:
	不管出不出现异常,都必须执行的代码。
	(一旦出现异常,程序会自动调到对应的except语句中,try里面的一些代码可能不会被执行)

try:
	with open('test.txt', 'r') as file1:
		str1 = file1.read(5)
except OSError as reason:
	print('文件出错,具体原因为:' + str(reason))
finally:
	print('exiting...')

自己创造一个异常:

raise exception [( ‘注释’ ) ]

raise OSError('要读取的文件不在!')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TxrXWdtZ-1593847072165)(D:\python\python\python资源\老师ppt\图解\Python的异常处理.png)]

类 class

命名规则:ClassName

类包含一系列的变量和函数
避免变量与函数重名,否则变量会覆盖函数。

class Car():#如果在定义的时候,把其他的类当作参数放进来,那么可以继承这个类的所有变量或者函数
	#变量
	name = 'carro'
	color = 'red'
	
	#函数
	def calculate_speed(self, distance, time):
		speed = distance / time
		print('%s is travelling at %f m/s' % (self.name, speed))
		# 除了在定义变量的部分,使用变量的话,都需要明确是哪一个对象(e.g. self.name而不是name)

类理解为一个模版,对象object则是这个模版刻出来的一个物品。

名规则:ClassName

类包含一系列的变量和函数
避免变量与函数重名,否则变量会覆盖函数。

class Car():#如果在定义的时候,把其他的类当作参数放进来,那么可以继承这个类的所有变量或者函数
	#变量
	name = 'carro'
	color = 'red'
	
	#函数
	def calculate_speed(self, distance, time):
		speed = distance / time
		print('%s is travelling at %f m/s' % (self.name, speed))
		# 除了在定义变量的部分,使用变量的话,都需要明确是哪一个对象(e.g. self.name而不是name)

类理解为一个模版,对象object则是这个模版刻出来的一个物品。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值