Python编程基础(一)
打卡第一天啦!!!
认识Python
- 面向对象 解释型计算机程序设计语言 胶水语言
变量和数据类型
变量
- 程序中用变量存储数据
- 变量的定义:变量名=数据
- 变量使用:通过变量名来使用变量
a=10
print(a)
a='潘小雷'
print(a)
- 首先定义变量,才能使用变量
- 赋值变量时不需要指定数据类型,给这个变量赋值什么数据类型,这个变量就是什么类型
数据类型
数字(num)
- int(有符号整数)
- long(长整型)
- float(浮点型)
- complex(复数)
- 布尔值(bool)
a=10
print(type(a))
a=1.2
print(type(a))
a=True
print(type(a))
字符串(str)
a='潘小雷'
print(type(a))
字典(dict)
a={}
print(type(a))
元组(tuple)
a=()
print(type(a))
列表(list)
a=[]
print(type(a))
变量的命名规则
- 变量必须以字母a到z、A到Z或下划线开头
- 其他字符可以是字母、数字或_
- 变量区分大小写
- Python关键字不能用作变量名
Name='潘小雷'
print(Name)
name='雨宙'
print(name)
_age=20
print(_age)
变量的命名规范
- 见名知意,如password用作密码
- 小驼峰式命名法:第一个单词首字母小写其他单词首字母大写,如userName
- 大驼峰式命名法:全部单词首字母都大写,如UserName
- 下划线命名法:每个单词用下划线连接,如user_name
算数和比较运算
算数运算
- 加法、减法、乘法、除法、指数(**)、取余(%)、地板除(//)
a=7
b=3
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a%b)
print(a//b)
比较运算
- 等于==
- 不等于!=
- 大于>
- 小于<
- 大于或等于>=
- 小于或等于<=
a,b=10,5
print(a==b)
print(a!=b)
print(a>b)
print(a<b)
print(a>=b)
print(a<=b)
- 结果是bool类型的数据
逻辑运算符
- and条件比较严格,两边的结果都需要为True,结果为True,否则False
a,b,c,d=23,18,10,3
print(a+b>c and c<d)
print(a+b>c and c>d)
- or条件有一个为真,结果就为真
a,b,c,d=23,18,10,3
print(a<b or b>d)
print(a<b or b<d)
- not取反,真假切换
a,b,c,d=23,18,10,3
print(not a>b)
- 优先级 ()-》not-》and-》or
赋值运算符
- = 赋值运算符
- += 加法赋值运算符
- -= 减法赋值运算符
- *= 乘法赋值运算符
- /= 除法赋值运算符
- %= 取模赋值运算符
- **= 幂赋值运算符
- //= 取整赋值运算符
a,b,c,d=23,18,10,3
a+=c
print(a)
Python输入和输出
Python输出
name='潘小雷'
age=20
print('我的名字是%s,我的年龄是%d'%(name,age))
name='潘小雷'
age=20
print('我的名字是{}'.format(name)+',我的年龄是{}'.format(age))
name='潘小雷'
age=20
print('我的名字是{},我的年龄是{}'.format(name,age))
Python输入
name=input("请输入您的姓名:")
age=int(input("请输入您的年龄:"))
print('我的名字是{},我的年龄是{}'.format(name,age))
流程控制结构
- 流程:计算机执行代码的顺序
- 流程控制:对计算机代码执行的顺序进行有效的管理
- 流程控制的分类:
(1)顺序流程 (2)选择流程/分支流程:单分支、双分支、多分支 (3)循环流程
选择流程
- 单分支
score=100
if score==100:
print('满分啦')
pass
print('语句运行结束')
- 双分支
score=99
if score==100:
print('满分啦')
pass
else:
print('没有满分')
pass
print('语句运行结束')
- 多分支
score=int(input('请输入分数:'))
if score>=90:
print('A等级')
pass
elif score>=80:
print('B等级')
pass
elif score>=70:
print('C等级')
pass
else:
print('D等级')
pass
import random
person=int(input('请出拳:[0:石头 1:剪刀 2:布]'))
computer=random.randint(0,2)
print(computer)
if person==0 and computer==1:
print('你赢了')
pass
elif person==1 and computer==2:
print('你赢了')
pass
elif person==2 and computer==0:
print('你赢了')
pass
elif person==computer:
print('平局')
pass
else:
print('电脑赢了')
pass
- 嵌套使用
循环流程
while
- 语法结构
while 条件表达式 ??代码指令 - 语法特点
(1)有初始值 (2)条件表达式 (3)循环体内计数变量自增或自减 - 使用条件:循环次数不确定,依靠循环条件来结束
index=1
while index<=100:
print(index)
index+=1
pass
import random
count=1
while count<=10:
person=int(input('请出拳:[0:石头 1:剪刀 2:布]'))
computer=random.randint(0,2)
print(computer)
if person==0 and computer==1:
print('你赢了')
pass
elif person==1 and computer==2:
print('你赢了')
pass
elif person==2 and computer==0:
print('你赢了')
pass
elif person==computer:
print('平局')
pass
else:
print('电脑赢了')
pass
count+=1
i=9
j=1
while i>=1:
while j<=i:
print('{}*{}={}'.format(i,j,i*j),end=' ')
j+=1
pass
print()
j=1
i-=1
pass
for
- 语法结构
for 临时变量 in 字符串,列表等: ??执行代码块 - 语法特点:遍历操作
tags='我是潘小雷'
for item in tags:
print(item)
pass
for data in range(1,100):
print(data,end=' ')
break和continue
- break 代表中断结束,满足条件直接结束本层循环
- continue 结束本次循环,继续的进行下次循环
- 两个关键字只能用在循环中
for…else…结构
account=1
password=1
for item in range(3):
input_account=int(input('请输入账号:'))
input_password=int(input('请输入密码:'))
if account==input_account and password==input_password:
print('登录成功')
break
pass
pass
else:
print('您的账号已被锁定')
- 在上面的循环中,只要出现了break,那么在else中的代码不会执行
- while…else…同理
字符串操作
序列
- 序列:在Python当中,序列就是一组按照顺序排列的值
- 在Python中,存在三种内置的序列类型:字符串、列表、元组
- 优点:可以支持索引和切片的操作
- 特征:第一个正索引为0,指向的是左端,第一个索引为负数的时候,指向的是右端
字符串及常用方法
- 切片是指截取字符串中的其中一段内容。切片使用语法:[起始下标:结束下标:步长]切片截取的内容不包含结束下标对应的数据,步长指的是隔几个下标获取一个字符。
test='python'
print('第一个字符{}'.format(test[0]))
for item in test:
print(item,end=' ')
pass
print(test.capitalize())
test_space=' hello '
print(test_space.strip())
print(test_space.rstrip())
test_a=1
test_b=a
print('a的内存地址为%d'%id(test_a))
print('b的内存地址为%d'%id(test_b))
dataStr='I love python'
dataStr.find('o')
print(dataStr.index('o'))
print(dataStr.startswith('I'))
print(dataStr.endswith('o'))
print(dataStr.upper())
print(dataStr.lower())
strMsg='hello world'
print(strMsg)
print(strMsg[0])
print(strMsg[2:5])
print(strMsg[2:])
print(strMsg[:3])
print(strMsg[::-1])
列表
- 有序的数据集合
- 特点
(1)支持增删改查 (2)列表中的数据时可以变化的(数据项可以变化,内存地址不会改变) - 用[ ]来表示列表类型,数据项之间用逗号分割,注意,数据项可以是任何类型的数据
- 支持索引和切片来进行操作
li=[1,2,3,"潘潘"]
print(len(li))
listA=['abcd',100,1.2,True]
print(listA)
print(listA[0])
print(listA[1:3])
print(listA[2:])
print(listA[::-1])
print(listA*2)
listA.append(['fff','ddd'])
print(listA)
listA.insert(1,'插入的数据')
print(listA)
rsData=list(range(10))
print(rsData)
listA.extend(rsData)
print(listA)
listA=['abcd',100,1.2,True]
listA[0]='abcdefg'
print(listA)
listB=list(range(10,20))
print(listB)
del listB[0]
print(listB)
del listB[1:3]
print(listB)
listB.remove(11)
print(listB)
listB.pop(0)
print(listB)
元组
- 不可变的序列,创建之后不能做任何修改(可以对元组中的列表进行修改)
- 当元组中只有一个元素时,要加上逗号,不然解释器会当做整型处理
tupleA=('abcd',123,1.2)
print(tupleA)
for item in tupleA:
print(item,end=' ')
pass
print(tupleA[0])
print(tupleA[1:3])
print(tupleA[::-1])
print(tupleA[-2:-1:])
tupleB=tuple(range(10))
print(tupleB)
print(tupleB.count(1))
字典
- 重要的数据类型
- 键值对组成的集合
- 通常使用键来访问数据
- 支持增删改查
- 特点:
(1)不是序列类型,没有下标的概念,无序的键值集合 (2)键必须是不可变的类型,值可以是任意的类型 (3)每个键必定是唯一的,如果存在重复的键,后者会覆盖前者
dict_test={"pro":'软件工程','school':'东北大学','lesson':'python'}
dictA['name']='潘小雷'
dictA['age']=20
print(dictA)
print(len(dictA))
print(dictA['name'])
print(dictA.keys())
print(dictA.values())
print(dictA.items())
for item in dictA.items():
print(item)
for key,value in dictA.items():
print('%s %s'%(key,value))
dictA['name']='雨宙'
print(dictA)
dictA.update({'age':19})
print(dictA)
dictA.update({'height':178})
print(dictA)
del dictA['height']
print(dictA)
dictA.pop('age')
print(dictA)
sorted(dict_test.items(),key=lambda d:d[0])
sorted(dict_test.items(),key=lambda d:d[1])
公有方法
- 合并操作
- 复制
- 判断元素是否存在
strA='人生苦短'
strB='我学Python'
print(strA+strB)
listA=list(range(10))
listB=list(range(11,20))
print(listA+listB)
print(strA*3)
print(listA*2)
print('人' in strA)
print(5 in listA)
dictA={"name":"潘小雷"}
print('name' in dictA)
|