Python学习之开篇基础

python是一种被广泛使用的高级通用脚本编程语言
其具有丰富的库
使用控制台输出hello world在这里插入图片描述
由此可知,python是一门十分简洁的编程语言
在这里插入图片描述
python能够应用于web开发,人工智能,系统网络运维,数据分析与计算,数据挖掘,图形界面开发。
其可用于精确表达问题逻辑,接近自然语言,只有33个保留字,十分简洁,大大的缩短了开发周期,还具有 免费,开源,扩展性好 的特点。

简单输出

a=123
b=456
print(a)#单个输出
print(a,b)#输出两个变量
print("输出字符串,a的值为{},b的值为{}".format(a,b))#混合输出{}相当于占位符

其中a的值为{},b的值为{}是一个输出字符串模板,即混合字符串与变量的输出样式
{}表示一个槽位置,括号中的内容由紧跟的format()方法中的参数按顺序填充
在print函数中会默认有换行,若不想换行,则加end=’’
之所以会默认换行,是因为其输出默认写法为
print(a,end=’\n’)

print(a,end='')
print(b)
print(a,end='\n')#默认写法

在这里插入图片描述
input函数
无论用户输入的是字符串还是数字,input()函数统一按照字符串类型输出

a=input('请输入一行字符串:')
print(a)

在这里插入图片描述

变量

命名规则:
python语言采用大写字母,小写字母,数字,下划线和汉字等字符及其组合给变量命名,但自变量的首字符不能为数字,中间不能出现空格,标识符不能与python的保留字相同
标识符对大小写敏感

Aa1_机=99  #正确命名,但首字符不能为数字
print(Aa1_机)

python的保留字

在这里插入图片描述

数据类型

简单的有数字类型,字符串类型
较复杂的有 元组类型,集合类型,列表类型,字典类型
数字类型
整数,浮点数,复数分别对应整数,小数,复数

print(0b01001100)#二进制76 0b或oB打头,自动识别为二进制
print(0o36)#八进制30 0或oB打头,自动识别为八进制
print(0x3b)#八进制59 0x或oX打头,自动识别为八进制

科学计数法

print(1.23456e3)#1.23456e3相当于1.23456*10的3次方

浮点数只有十进制
在这里插入图片描述

字符串

#formatted-string 字符串格式化
name="彭祥"
age=23
msg=f'{name}是最帅的,他今年{age}岁了'
print(msg)

列表

列表可以存储不同类型的数据,可以进行增删改查操作

#列表可同时存放很多数据
favorite_fruits=["apple","orange","pear","西瓜"]
mynum=[10,3,12,14,8,18]
print(favorite_fruits[-1])#倒叙时的顺序
print(favorite_fruits[1:4])#一种切片手段,若最后一个加上范围,则不包含
favorite_fruits[0]="grape"
print(favorite_fruits)#替换
#extend 将一个列表追加到另一个列表结尾处
favorite_fruits.extend(mynum)
print(favorite_fruits)
#append 追加
favorite_fruits.append("hhhh")
print(favorite_fruits)
#insert 添加任意位置
favorite_fruits.insert(0,"grape")
print(favorite_fruits)
#romve移除
favorite_fruits.remove("orange")
print(favorite_fruits)
#pop  默认去掉最后一个,可根据索引删除
print(favorite_fruits)
favorite_fruits.pop(0)
print(favorite_fruits)
#index
print(favorite_fruits.index(123))
#count 查找列表这某个元素的个数
print(favorite_fruits.count(123))
#sort
print(favorite_fruits.sort())
#clear 列表清空
favorite_fruits.clear()
print(favorite_fruits)

元组tuple

tuple与list相比,其用的是(),且内容无法修改,即一经创建,无法改变

#tuple与list相比,其用的是(),且内容无法修改
ts=("彭祥","pehds")
print(ts[0:2])

请添加图片描述

函数function

def用于声明,使用缩进进行构建函数体

#def声明函数 关键字 keywords
def sayHello():
	print("hello world!")
sayHello()

循环体

#def声明函数 关键字 keywords
def sayHello(name,age):
	print("hello"+name+"your age is "+str(age))
name=["彭祥","李白","杜甫"]
age=[23,45,35]
for x in range(len(name)):
	sayHello(name[x], age[x])

返回值,若无return 默认为None

def double_number(num):
	return 2*num
print(double_number(5))

if-else

is_hot=False
is_cold=False
if is_hot:
	print("天气很热")
elif is_cold:
	print("天气很冷")
else:
	print("天气很舒服")
print("快乐每一天")

字典

字典内容是可以修改的

#字典  键值对方式存储 key-value
customer={
	"name":"彭祥",
	"age":23,
	"is_vip":True
}
print(customer["name"])#若键不存在则报错
print(customer.get("id","0000"))#若键不存在,则返回默认,0000是自定义的默认值

while循环

i=1
while i<=8:
	print("$"*i)
	i=i+1

请添加图片描述

for循环

#for loop 迭代
#使用字符串循环
for x in "pengxiang happy":
	print(x)
#列表形式
name=["彭祥","dd",12]
for x in name:
	print(x)
#输出一定数量 从0到9共10个数
for x in range(6,10):
	x=x+2
	print(x)
#设置步长
for x in range(20,30,2):
	print(x)

嵌套循环

num_list1=[1,2,3,4,5]
num_list2=[6,7,8,9]
#(1,6) (1,7) (1,8)这种形式
for x in num_list1:
	for y in num_list2:
		print("("+str(x)+","+str(y)+")")
for x in num_list1:
	for y in num_list2:
		print(f'({x},{y})')

请添加图片描述

二维列表

其类似于矩阵,在机器学习中有重大应用

#二维列表
matrix=[
	[1,2,3],
	[4,5,6],
	[7,8,9]
]
print(matrix[0][2])#索引访问方式
matrix=[
	[1,2,3],
	[4,5,6],
	[7,8,9]
]
for row in matrix:  #嵌套输出所有
	for item in row:
		print(item)

解包

无需一个个的赋值,其能够对应解析

#解包 unpacking
user=["王二狗",30,"1992-1-1"]
user_name=user[0]
user_age=user[1]
user_birth=user[2]
print(user_name+" "+str(user_age)+" "+user_birth)

user=["李白",30,"1992-1-1"]#无需这种挨个赋值,这便是python的解包功能
user_name,user_age,user_birth=user
print(user_name+" "+str(user_age)+" "+user_birth)

请添加图片描述

异常处理

要对不同异常进行处理

try:
	num=int(input("输入数值:"))
	result=1/num
	print(result)
except ZeroDivisionError:
	print("数值计算不合法")
except ValueError:
	print("输入异常")

请添加图片描述

文件操作

在执行文件操作时,遇到了一个异常
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xbf in position 2: illegal multibyte sequence
是当内部编码转化成 gbk编码(默认)时出错,改为utf-8就好了

#文件读取
story=open("stroy.txt","r",encoding='utf-8')
content=story.read()
print(content)
story.close()
#文件关闭
#文件读取
#文件读取
story=open("stroy.txt","r",encoding='utf-8')
content=story.readlines()#读取一行并返回一个列表
for line in content:
	print(line)
#文件关闭s

请添加图片描述
a为追加模式
请添加图片描述

w为存写模式,会覆盖原本的内容替换新的内容

#文件读取
story=open("stroy.txt","w",encoding='utf-8')
story.write("彭祥真棒!")

同时w能够创建一个新的文件请添加图片描述

类 Class

pass是在空的时候使用的

class Student:
	pass#表示空,即在里面是空的时候给给定
jack=Student();
jack.name="jack.com"
print(jack.name)

请添加图片描述
构造函数
self表示实例本身

请添加图片描述

class Student:
	def __init__(self,name,age,sex):
		self.name=name
		self.age=age
		self.sex=sex
		print("_init_is run")
jack=Student("python",12,"男")#有参构造
mm=Student("python")#此时缺少参数会报错
print(jack.name)
class Student:
	def __init__(self,name,age,sex):
		self.name=name
		self.age=age
		self.sex=sex
		print("_init_is run")

	def print_info(self):
		print(f'{self.name}-{self.age}-{self.sex}')
jack=Student("python",12,"男")#有参构造
jack.name="hhh"
jack.print_info()

请添加图片描述
加__(两个下划线)可以相当于私有,可以通过set,get方法来实现

class Student:
	def __init__(self,name,age,sex):
		self.__name=name#加入__相当于私有 private,此时想要外部访问可以通过内部方法来实现
		self.__age=age
		self.__sex=sex
		print("_init_is run")
	def get_name(self):      #如通过set get函数方法来实现
		return self.__name
	def set_name(self,name):
		self.__name=name
	def print_info(self):
		print(f'{self.__name}-{self.__age}-{self.__sex}')
jack=Student("python",12,"男")#有参构造
jack.__name="hhh"  #此时便无法修改参数
jack.print_info()

继承

class Student(Person):#继承Person
def learn(self):
print(“I am a student”)
即可

class Person:
	def __init__(self,name,age,sex):
		self.__name=name
		self.__age=age
		self.__sex=sex
		print("_init_is run")
	def get_name(self):
		return self.__name
	def set_name(self,name):
		self.__name=name
	def print_info(self):
		print(f'{self.__name}-{self.__age}-{self.__sex}')

class Student(Person):#继承Person
	def learn(self):
		print("I am a student")
class Teacher(Person):#继承Person
	def teach(self):
		print("I am a teacher")
jack=Student("python",12,"男")#有参构造
jack.print_info()
jack.learn()
Tom=Teacher("Tom",12,"女")
Tom.teach()

模块

导入模块,一般是在模块文件中值声明方法,充当函数,导入时变为执行导入的模块文件内容

import student
stu=student.Student("彭祥",23,"男")
student.Student.print_info(stu)

导入系统模块,输出其路径
请添加图片描述
从某一模块中导入某个方法,类,变量

from student import Student
jack=Student("彭祥",23,"男")
jack.print_info()

导入所有方法,类

from student import *
jack=Student("彭祥",23,"男")
jack.print_info()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭祥.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值