计算机基础结构由五大部分组成
- 运算器:程序中指令对数据进行加工处理
- 控制器:根据程序的需求,指挥计算机的各个部件协调工作
- 存储器:保存各类程序的数据信息
- 内存(RAM)--容量小、速度快、临时存储数据
- 硬盘(HDD)--容量大、速度慢、永久存储数据
- 输入设备:外界向计算机传送信息的装置
- 键盘、鼠标、扫描仪
- 输出设备:计算机向外界传送信息的装置
- 显示器、音响、打印机
python语言特点
- 开源、免费自由的软件
- 良好的平台型
- 强大的扩展功能
应用领域
- Google搜索引擎核心代码
- 百度无人驾驶汽车
- 网易游戏服务器
- 豆瓣网主题架构智能机器人
- ChatGPT
- 自动化测试、自动化运维、数据分析
- Python大数据
- Python程序开发
python的数据类型:
整数类型(int)、浮点数(小数)类型(float)、布尔类型(bool)、字符串(str)
列表(list)、元组(tuple)、集合(set)、字典(dict)、
变量
变量是可以变化的量,实际上是编程人员申请的内存空间,给这段空间起的名字叫做变量名
注意:注意变量没有类型,关联的对象才有类型
变量名 = 变量值
变量名1 = 变量名2 = 变量值
变量名1,变量名2 = 变量值1,变量值2
#=表示赋值符号,将等于号右侧的赋值给等号左侧变量
age = 20
print("age")
x = 10
y = 20
result = x + y
print(result)
#定义变量 申请内存,为内存空间命名
person_name = '张三'
class_name = 'test_2023'
number01 = number02 = number03 = 100
number01,number = 100,200
#修改变量:python中允许对同一个变量,先后存入不同类型的数据,之前的数据会被覆盖
person_name = '李四'
#引用/使用/调用 变量:可以向申请的内存中存入数据、修改数据、取出数据进行运算、查看数据、收回
print(person_name)
#删除变量: del用于删除变量,同时解除与对象的关联
#del 变量名称1,变量名称2
del person_name,class_name
链式赋值和多个赋值操作同时进行
#链式赋值
n4 = n5 =n6 = 300
多个赋值操作同时进行:
n7,n8,n9 = 10,-9,0
input()与print()函数
input()函数,主要用于获取键盘输入的数据,返回的值是字符串类型
print()函数,主要用于显示(输出)结果并换行
#变量 = input函数("提示信息")
#在终端中或控制台中获取用户输入的信息,将输入的信息赋值给变量
# = 表示赋值符号,将右边的数据给到左边
#print(数据)
#在终端中显示信息
例如:
#使用print()函数在终端中输出个人介绍(姓名、年龄、爱好)
print("lalala") #打印字符串
print(28) #打印整数
print("滑雪") #打印字符串
#在一行上输出个人介绍
print("熊三",20,"跳舞")
#使用input()函数通过键盘输入个人介绍,并通过print()打印个人介绍
#获取姓名
name = input("请输入姓名:")
#获取年龄
age = input("请输入年龄:")
#获取爱好
bobby = input("请输入爱好:")
print(name)
print(age)
print(hobby)
"""
在终端中提示用户输入武器的名称
再提示用户输入武器的超能超能力
最后显示:xx的超能力
"""
weapa = input("请输入武器的名称")
atk = input("请再输入武器的超能力")
print(weapa+"的超能力是"+atk)#加号表示字符串拼接
print(f'{weapa}的超能力是{atk}')#美化格式输出
print(weapon,'的超能力是',atk)#逗号会有空格间隔
"""
请用户通过键盘输入用户的账号和密码
最后输出:
输入的用户名是xxxx
输入的密码是xxxx
"""
id = input("请输入账号")
password = input("请输入密码")
print("输入的用户名是:"+id,"\n"+"输入的密码是:"+password)
print(f"输入的用户名是{id}")
print(f"输入的用户名是{password}")
print("输入的用户名是:"+id)
查看数据类型
type()函数
name = 'test'
print(type(name))
age = 18
print(type(int))
sal = 100.15
print(type(sal))
占位None
- 只希望有一个变量,但指向的对象还不能确定
#占位
skill = None
print(skill)
#绑定数据
skill = '乾坤大挪移'
print(skill)
#解除与对象的绑定关系
name = None
print(name)
算术运算符和表达式
(1)算数运算符
+、-、*、/、//(整除)、%(求余)、**(成方)
乘法运算符
案例:计算半径r=10的圆形的周长和面积
r = 10
PI = 3.14
cir = 2* PI*r
area = PI*r*r
print(cir)
print(area)
除法运算符
案例:小花有100元零花钱,如果每天花4元钱,可以花几天?
pin_money = 100
per = 4
day = pin_money / per
print(day)
整除运算符
案例:学校新进了250套新桌椅,一个班级的学生为30人,可以分给几个班级?
x = 250
p = 30
z = 250 // 30
print(z)
求余运算符%
案例:学校新进了250套新桌椅,一个班级的学生为30人,可以分给几个班级?还剩余多少套?
x = 250
p = 30
z = 250 % 30
print(z)
乘方运算符**
案例:计算半径r=25的圆形的面积
r = 25
PI = 3.14
area = PI * r ** 2
print(area)
特殊情况:复合赋值运算符
+=、-=、*=、/=、//=、%=**=
关系运算符和表达式
- 大于、小于、大于等于、小于等于、==、!=
- 说明:通过关系运算符比较得到的结果,是True(真)或(false)假
逻辑运算符和表达式
- and(与)、or(或)、not(非)
- 逻辑运算符经常和关系运算符联系在一起使用,经常把多个关系运算符连接在一起例如:x>10 and y<=100
"""
在终端中录入年份,判断年份是否为闰年
条件1:年份能被4整除,但是不能被100整除
条件2:年份能被400整除
输入:2019
输出:Flase
输入:2000
输出:True
"""
nian = int(input("请输入年份"))
result = nian % 4 == 0 and nian % 100 != 0 or nian % 400 == 0
print(f"判断的年份是:{nian}")
print(f"判断闰年的结果是:{result}")
字符串类型 -重
字符串运算
(1)加法运算
说明:字符串加法运算,就是字符串拼接
(2)乘法运算
说明:字符串乘法运算,就是字符串复制。下标从0开始
- 统计总字数len()
print(len("sean"))
统计一个字符串在另外一个字符串中出现的次数,如果不存在返回0
- count(str)
str05 = "你好Python,Python你好,世界真小"
str06 = "Python"
x = str05.count(str06)
print(x)
- 大小写转换
- upper()英文字母全变成大写
- lower()英文字母全部变为小写
str09 = "ABCDefgHJK"
s1 = str09.upper()
print(s1)
s2 = str09.lower()
print(s2)
- spilt(分隔符,分割数量)
fruit = "西瓜,苹果,香蕉,草莓"
str07 = fruit.split(",")
print(str07)
str08 = fruit.split(",",2)
print(str08)
- 字符串替换
- replace(老字符串,新字符串、个数)
- 删除字符串两端、右端、左端的空白字符
- strip()
- rstrip()
- lstrip()
str10 = " i love testing, 我爱编程, 向Python走起 "
print(str10)
s3 = str10.split()
print(str3)
判断字符串是否全部为字母、数字、空格
str12 = "123 i love testing 456"
s1 = str12.isalpha()
s2 = str12.isdigit()
s3 = str12.isdigit()
print(s1, s2, s3)
- startwith(str, beg , end)
startwith 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True否则返回 False
str16 = 'abcdefghjk'
res1 = str16.startswith('abc')
res2 = str16.startswith('abc', 1, 5)
print(res1, res2)
- endwith(str, beg , end)
endwith 方法用于检查字符串是否是以指定子字符串结尾,如果是则返回True否则返回 False
str17 = 'abcdefghjk'
res3 = str17.endswith('jk')
res4 = str17.endswith('jk', 1, 5)
print(res3, res4)
- eval(表达式)
eval 用来执行一个字符串表达式,并返回表达式的值,可以应用于类型转换
a = 3
b = 'a*4'
c = eval(b)
print(c)
表达式
使用运算符将两个或多个具体数据或变量连接起来的式子
a * 3
a + 4
a*2 + b/3
例如:
# 通过input()键盘输入给对方留言,获取留言总字数
txt = input("请给对方留言")
print("你留言的总字数为:"+str(len(txt))+"个字");
-- 方法二
txt = input("请留言")
print(len(txt))
# 设计一个加法计算器,通过键盘输入数据,并输出结果
sum1 = float(input("第一个数是:"))
sum2 = float(input("第二个数是:"))
print("结果为:"+str(sum1+sum2))
"""
在终端中录入一个半径,输出圆形的面积(3.14 x 半径的平方) round
输出的格式:圆形的面积是:xxx
"""
round = int(input("请输入圆的半径:"))
#area = 3.14 * r **2
area = int(input(3.14**round))
print("圆形的面积是:"+str(area))
"""
准备一个数,判断这个数是否为整数
"""
#获取数据
number = int(input("请输入一个数"))
#数据处理
result = number % 2 == 0
#输出结果
print(f"输入的数是:{number},它是否是偶数:{result}")
短路运算
- 一旦结果确定,后面的表达式将不再执行
#Flase and ?
#True or ?
- 逻辑运算时尽量将复杂的判断放在后面
and:当第一个式子为flase时候,将不会判断第二个式子
or:当地一个操作为true时候,将不会再判断第二个操作数
三目运算符
- 也成为三元运算符 或 条件运算符
#如果10大于等于10,则打印1,否则打印-1
print(1) if 10 >= 10 else print(-1)
#如果今天天气好,输出天气真好,否则输出天气真不好
#定义变量获取天气情况,晴朗、阴天、雨天、刮风
weather = input("请输入天气情况")
print("天气真好") if weather == "晴朗" else print("is bad")
字符串运算
加法运算
- +:用于字符串拼接两个容器
- +=:用于原容器与右侧容器拼接,并重新绑定变量
s1 = '你好'
s2 = 'sxx'
s3 = s1 +s2
print(s3)
print(type(s3))
s3 += 'a' #s3 = s3 +'a'
print(s3)
乘法运算
- *:表示重复生成容器元素
- *=:用原容器生成重复的元素,并重新绑定变量
s4 = 'python'
s5 = s4*3
print(s5)
比较运算符
- 依次比较两个容器中的元素,一旦不同则返回比较结果
print(s4 != s5)
成员运算
- in
- not in
print("大神" in "我是大神")
print("大神" not in "我是大神")
索引(正向索引,反向索引)
- 正向索引从0开始,第二个索引为1,最后一个为len(容器名称)-1
- 反向索引从-1开始,-1代表最后一个,-2代表倒数第二个,第一个-len(容器)
s1 = "我是齐天大圣孙悟空"
# 0 1 2 3 4 5 6 7
print(s1[0])#正向索引从0开始
print(s1[3])
print(s1[-1]) #反向索引从右开始
print(s1[len(s1)-3])
切片
s2 = '我是齐天大圣孙悟空'
print(s2[:])
print(s2[:3]) #不包含结束索引所对应的内容
print(s2[3:]) #开始值到默认结尾
print(s2[::-1]) #倒叙打印
print(s2[::2]) #间隔2两个,走两步
#创建字符串:人生苦短,我用python
s2 = "人生苦短,我用python"
#打印第一个字符,最后一个字符
print(s2[0::12])
#打印前两个字符,后6个字符
print(s2[:2],s2[-6:])
#打印中间一个字符
print(s1[len(s1)//2])
#倒叙打印所有字符
print(s2[::-1])
定义(创建/声明)列表
语法:
- 列表名 = [数据1,数据2,数据n.........]
- 列表名 = list(可迭代对象)
- 列表名 = [[数据1,数据2,数据n],[数据1,数据2,数据n],......[数据1,数据2,数据n]]
解(拆)包
#解包是星星或者变量名
print(*list_stu) #解包
#下面这种方法可以直接根据自己写的拆解开一一对应,随便输入一个就好
也可以两个一起,中间加上逗号就好
list_cases = [['case1', 'root', '12345', True],
['case3', 'root', '12345', True],
['case2', 'root', '12345', False],
['case4', 'root', '12345', True, '密码为空']
]
case01,case02,case03,case04 = list_cases
print(case02)
print(case02[3])
print(case01,case04)
print(*case03)
列表运算
- 加法运算(拼接)
list_name = ['skd','wde3ws','细节哦']
list_car = ['奔驰','宝马','奥迪']
list_result = list_car + list_name #加法拼接
print('list_result',list_result)
- 乘法运算(复制)
list_name = ['skd','wde3ws','细节哦']
list_car = ['奔驰','宝马','奥迪']
list_result = list_name * 3
print('list_result',list_result)
修改列表中某个元素
list01 = [1,2,3,4]
#更新或修改元素
list01[1] = 1
print(list01)
#删除某个元素
del list[1]
print(list01)
#删除列表元素 ---下标
print('删除前信息',list_car)
del list_car[1]
print('删除后信息',list_car)
#删除列表对象 ---列表名
print('删除前信息',list_car)
del list_car
print('删除后信息',list_car)
#函数指定索引号进行删除
list01.pop(2)
print(list01)
- extend 表示将另一个列表中的所有元素追加到当前列表的尾部
list1 = ['aaa', 'bbb', 'ccc']
list2 = ['hhh']
list1.extend(list2)
print(list1)
- append()向列表尾部追加一个元素
list_num = [100,200,300]
print('追加数据前:',list_num)
list_num.append(230)
print('追加数据后',list_num)
- insert()向列表任意位置添加元素
list_num = [100,200,300]
print(list_num)
list_num.insert(3,3039)
print(list_num)
- count 表示获取列表中指定元素出现的次数
list1 = ['aaa', 'bbb', 'ccc', 'aaa', 123, 345, 'sd']
count = list1.count('aaa')
print(count)
- pop()表示删除指定位置上的元素
list1 = ['aaa','bbb','ccc',123,456,'sd']
list1.pop(3)
print(list1)
#运行出来为['aaa', 'bbb', 'ccc', 345, 'sd']
- clear()表示清空列表
list1 = ['aaa','bbb','ccc',123,456,'sd']
list1.clear()
print(list1)
#运行出来为空
- sort表示按照指定规则对所有元素进行排序,默认比较元素大小
list1 = [10, 12, 3, 4, 5, 6, 97, 8, 9]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)
#运行结果reverse
#[3, 4, 5, 6, 8, 9, 10, 12, 97]
#[97, 12, 10, 9, 8, 6, 5, 4, 3]
"""
创建列表,存储水星,金星,地球,木星,土星,天王星
向列表中追加海王星
在地球后插入火星
打印距离太阳最远的行星(最后一个行星)
打印地球之前的所有行星(前两个行星)
删除金星
qiu.remove("金星")
删除地球后面的所有行星
倒叙打印所有行星
for i in range(len(qiu)-1,-1,-1):
print(qiu[i])
"""
qiu = ['水星','金星','地球','木星','土星','天王星']
qiu.append('海王星')
print(qiu)
qiu.insert(3,'火星')
print(qiu)
print(qiu[-1])
print(qiu[:2])
qiu.pop(1)
print(qiu)
del qiu[2:]
print(qiu)
print(qiu[::-1])
元组
- 定义元组,语法:
元组名 = (数据1,数据2,数据3,数据4,…)
说明:以圆括号()括起来的数据集合,不同数据间以“,”分隔,元组中可以包含任何数据类型
number = (1, 2, 3, 4, 5)
work = ('a001', "张三", 40, "北京")
print(number)
print(work)
#结果:(1, 2, 3, 4, 5)
('a001', '张三', 40, '北京')
- 特殊情况元组
#创建空元组
name = ()
age = tuple()
#创建无名元组
tuple()
#圆括号可以省略
num = 2,3,4
- 说明:元组不支持项删除
#删除元组对象
n1 = 2, 3, 4
del n1
print(n1)
- 元组运算
#加法运算
n1 = 2, 3, 4
n2 = 4, 5, 6
n3 = n1 + n2
print(n3)
#运行结果:(2, 3, 4, 4, 5, 6)
#乘法运算
n4 = 2, 3, 4
n5 = n4*3
print(n5)
#运行结果:(2, 3, 4, 2, 3, 4, 2, 3, 4)
#练习:定义一个元组,获取元组中的数据,删除元组对象
tuple01 = (101,'rose',20,78.5,True)
del tuple01
print(tuple01)