1. 复习
1.1 pycharm规定每行最多80个字符
1.2 换行符 \
1.3 input函数==》默认获取的str
01.homework
# 1.获取控制台输入信息
account = input("请输入账户")
pwd = input("请输入密码")
# 2.设置系统账户和密码
userAccount = "njxzc"
userPwd = "123"
# 3.比较账户和密码
if userAccount == account:
# 比较密码
if userPwd == pwd:
print("亲,欢迎登录学习系统")
# 正常写法
if userAccount == account and userPwd == pwd:
print("亲,你又来了啊")
02. if-else
2.1 if-else
2.2 if-elif-else
"""
02-if-else
"""
age = 19
if age > 18:
print("欢迎光临本网吧")
else:
print("未成年人不准进入")
# String ==>int()===>int类型
score = int(input("请输入考试成绩"))
if score >= 90:
print("优秀的成绩")
elif score >= 70:
print("中等的成绩")
elif score >= 60:
print("差的成绩")
else:
print("不及格的成绩")
03-if嵌套
注意事项:建议不要嵌套到第三层
"""
03-if嵌套
"""
house = 2000000
car = 100000
money = 100000
salary = 20000
# if语句嵌套
if house >= 2000000:
if car >= 100000:
if money >= 100000:
if salary >= 20000:
print("亲爱的,明天我们。。。")
else:
print("啥时候见咱爸妈")
else:
print("咱们先谈谈试试")
else:
print("我喜欢投缘的")
else:
print("亲,你是个好人")
04-猜数字游戏
'''
04-猜数字游戏
'''
# 导入随机函数模块
import random
# 0-100之间的随机数
randNum = random.randint(0,100)
print("正确答案是:",randNum)
userNum = int(input("请输入猜的数字"))
# 数据范围大小100-70
# 70-40
# 40-0
if randNum > 70:
print("大")
elif randNum > 40:
print("中")
elif randNum > 0:
print("小")
# 判断数字大小
if randNum > userNum:
print("小了")
elif randNum < userNum:
print("大了")
elif randNum == userNum:
print("猜对了")
else:
print("您所输入的信息有误")
05-循环语句
5.1. while循环
注:while语句计数变量必须修改,否则会造成死循环
内存溢出==》关机重启
优点:代码块大体相同,提高了编码效率
缺点:代码量增大,业务逻辑会相对比较复杂
"""
05-循环语句
"""
# 1.while循环
i = 1
while i < 10000:
print("媳妇,我错了")
# 计数值修改,死循环
i += 1
# 死循环
# while True:
# print("我要好好赚钱")
# 课堂练习:
# 1. 1--100之间的累加和
j = 1
result = 0
while j <= 100:
# 更改累加和
result += j
# 计数变量改变
j += 1
print(result)
# 2. 1--100之间偶数累加和
k = 1
result = 0
while k <= 100:
if k % 2 == 0:
result += k
k += 1
print(result)
06-九九乘法表
换行问题
end = " " 加空格,不换行
print("1*1=1",end = " ")
'''
06-九九乘法表
'''
i = 1
while i <= 9:
j = 1
while j<=i:
print("%d*%d=%d"%(j,i,j*i),end=" ")
j += 1
print()
i += 1
"""
控制台输出:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
"""
07-for循环
格式:
第一种: for...in...
第二种: for...in...
else
"""
07-for循环
"""
name = "王麻子"
# 分解成一个字符
# 赋值给ch
for ch in name:
print(ch)
"""
输出:
王
麻
子
"""
name = ""
# for if语句
for ch in name:
print(ch)
else:
print("没有数据")
"""输出:没有数据"""
08-break
注:break 和continue
1 break 跳出所有循环
2 continue 跳出本次循环执行下一次循环
注意事项:while循环嵌套
for循环嵌套
break和continue 影响的是最靠近循环
"""
08-break
"""
st = "今天是个好日子美丽的生活"
for s in st:
# 判断
if s == "美":
# break # 跳出所有循环
continue # 跳出本次循环,执行下一次
else:
print(s)
09-课堂练习:完成以下图形的输出
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
# 课堂练习
i = 1
while i <= 5:
j = 1
while j <= i:
print("*", end=" ")
j += 1
print()
i += 1
k = 4
while k >= 0:
j = 1
while j <= k:
print("*", end=" ")
j += 1
print()
k -= 1
"""
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
"""
10-字符串
10.1 字符串格式
双引号和单引号括起来的就是字符串
10.2 下标和切片
# 1.字符串声明及初始化
name = "张学友"
names = "张曼玉"
print(type(names)) #
# 2. 字符串输出(格式化、普通)
print("%s" % names) # 张曼玉
# 3.字符串输入input()
nm = input("请输入姓名")
print("输入类型", type(nm)) # 输入类型
11-下标和切片===字符串
11.1 下标索引 下标从0开始
11.2 切片 [起始:结束:步长]
原则:左闭右开 左边包含 右边不包含 左<= 右>
注意事项:1. 切片中负号代表从右往左,正号代表从左往右
2.起始位置不写 默认从头开始
3.结束位置不写 默认到结束
4.步长不写默认是1
11.3 切片的应用
1.文件的操作
2.URL路径地址 分割 split
3.正则表达式
4.验证码
5.JSON数据解析
eg. https://mall.jd.com/index-1000001947.html
https:// http协议
mall.jd.com/ 域名
index-1000001947.html 参数
index ====>服务器网站文件夹名
100001947 =====>文件名称
.html =====>文件格式
"""
11-下标
"""
name = "abcdef"
print(name[0]) # a
"""11.1 下标索引 下标从0开始
11.2 切片 [起始:结束:步长]
"""
address = "南京市xx大道1234号"
# [起始:结束:步长]
# 1.最常见
print("切片:", address[3:7:1]) # xx大道
# 2.切片2 获取xx大道 到最后
print("切片2:", address[3:]) # xx大道1234号
# 3.切片3 获取从xx大道 到倒数第二个字符
print("切片3:", address[3:-1]) # xx大道1234
# 4.切片4 获取从开头 到倒数第三个字符
print("切片4:", address[:-2]) # 南京市xx大道360
# 5.切片5 获取从头到尾 分割切字符
print("切片5:", address[::2]) # 南市x道24
# 6.切片6 字符串反转
print("切片6:", address[::-1]) # 号4321道大xx市京南
12-字符串 常见操作
12.1 find函数
1. 查找到,返回字符下标值
2. 查找不到,返回-1
12.2 index函数
1. 查找到,返回字符下标值
2. 查找不到,报错valueError
12.3 count函数
1. 统计到,返回字符下标值
2. 查找不到,报错valueError
12.4 replace 替换字符
1. 替换
print("replace函数", name.replace("1","8"))
12.5 split 函数:分隔符
12.6 capitalize函数:首字母大戏
12.7 title 函数 1.全部单词首字母大写
12.8 startswith函数
1.检查是否以obj开头
2.结果为True False
12.9 endswith函数
1.检查是否以obj结尾
2.结果为True False
12.10 lower函数
1.所有字符转换成小写
12.11 upper函数
1.所有字符转换成大写
12.12 ljust函数
1.字符串左对齐
12.13 rjust函数
1.字符串右对齐
12.14 center函数
1.字符串居中显示
12.15 lstrip函数
1.删除左边空白
12.16 rstrip函数
1.删除右边空白
12.17 strip函数
1.删除两边空白
12.18 rfind函数
1.从右边开始查找
12.19 rindex函数
1.从右边开始查找
12.20 partition函数
1.将字符串分割成三个部分
12.21 rpartition函数
1.将字符串分割成三个部分
12.22 splitlines函数
1.将一行字符串分割列表
2.python2.7版本直接进行分割
3.python3.x版本直接转换成列表
12.23 isalpha函数
1.判断字符串是否为字符
12.24 isdigital函数
1.判断字符串是否为数字
12.25 isalnum函数
1.判断字符串中是否为数字或者字母
12.26 isspace函数
1.判断字符串是否只包含空格
12.27 join函数
1.插入字符串进每个元素之间
"""
12-字符串常见操作
"""
# 1.find 查找
# 1). 查找到,返回字符下标值
# 2). 查找不到,返回-1
name = "南京市xx大道1234号"
print("find函数:", name.find("大")) # 5
print("find函数:", name.find("美")) # -1
# 2.index 查找字符
# 1).查找到,返回字符下标值
# 2). 查找不到,报错valueError
print("index函数:", name.index("号")) # 11
# print("index函数:", name.index("美"))
# 3.count 统计出现次数
# 1). 统计到,返回字符下标值
# 2). 查找不到,报错valueError
print("count函数:", name.count("京")) # 1
print("count函数:", name.count("美")) # 0
# 4.replace 替换字符
print("replace函数", name.replace("1", "8")) # 南京市xx大道8234号
# 5.split 函数:分隔符
name = "Hello World"
print("split函数", name.split(" ")) # split函数 ['Hello', 'World']
# 6.capitalize 函数: 首字母大写
name = "hello world"
print("capitalize函数", name.capitalize()) # capitalize函数 Hello world
# 7.title 函数:全部单词首字母大写
name = "hello world"
print("title函数", name.title()) # title函数 Hello World
# 8.startswith函数:检查是否以obj开头,结果为True/False
name = "南京市xx大道1234号"
print("startswith函数", name.startswith("南")) # startswith函数 True
print("startswith函数", name.startswith("北")) # startswith函数 False
# 9.endswith函数: 检查是否以obj结尾,结果为True/False
name = "南京市xx大道1234号"
print("endswith函数", name.endswith("号")) # True
print("endswith函数", name.endswith("好")) # False
# 10.lower函数 : 所有字符转换成小写
name = "HELLO WORLD"
print("lower函数", name.lower()) # hello world
# 11.upper函数 : 所有字符转换成大写
name = "hello world"
print("upper函数", name.upper()) # HELLO WORLD
# 12.ljust函数: 字符串左对齐
name = "你好啊"
print("ljust函数", name.ljust(10)) # ljust函数 你好啊
# 13.rjust函数: 字符串右对齐
print("rjust函数", name.rjust(10)) # rjust函数 你好啊
# 14.center函数:字符串居中显示
print("center函数", name.center(20),end="|")
# center函数 你好啊 |
# 15.lstrip函数: 删除左边空白
name = " 小明同学 "
print("lstrip函数", name.lstrip())
# center函数 你好啊 |lstrip函数 小明同学
# 16.rstrip函数: 删除右边空白
name = " 小明同学 "
print("rstrip函数", name.rstrip()) # rstrip函数 小明同学
# 17.strip函数: 删除两边空白
name = " 小明同学 "
print("strip函数", name.strip()) # strip函数 小明同学
# 18.rfind函数 :从右边开始查找
name = "南京南市xx大道1234号"
print("rfind函数", name.rfind("南")) # rfind函数 2
# 19.rindex函数 : 从右边开始查找
print("rindex函数", name.rindex("南")) # rindex函数 2
# 20.partition函数
# 将字符串分割成三个部分
name = "Hello World 你好啊"
print("partition函数", name.partition("World"))
# partition函数 ('Hello ', 'World', ' 你好啊')
# 21.rpartition函数:从右边 将字符串分割成三个部分
name = "Hello world 你好啊 world 小明同学"
print("rpartition函数", name.rpartition("world"))
# rpartition函数 ('Hello world 你好啊 ', 'world', ' 小明同学')
# 22.splitlines函数
"""
1.将一行字符串分割列表
2.python2.7版本直接进行分割
3.python3.x版本直接转换成列表
"""
name = "Hello world"
print("splitlines函数", name.splitlines()) # splitlines函数 ['Hello world']
# 23.isalpha函数: 判断字符串是否为字符
name = "hello world"
print("isalpha函数", name.isalpha()) # False
# 24.isdigit函数:判断字符串是否为数字
name = "123456"
print("isdigit函数", name.isdigit()) # isdigit函数 True
# 25.isalnum函数 : 判断字符串中是否为数字或者字母
name = "abc123"
print("isalnum函数", name.isalnum()) # isalnum函数 True
# 26.isspace函数 : 判断字符串是否只包含空格
name = " "
print("isspace函数", name.isspace()) # isspace函数 True
# 27.join函数: 插入字符串进每个元素之间
name = ["你", "好", "啊"]
ns = "%"
print("join函数", ns.join(name)) # join函数 你%好%啊
13-列表list常见操作
13.1列表格式[]
13.2列表遍历
13.3获取列表元素长度 len()
names = ["张三丰", "张无忌" , "张翠山"]
# 2.列表遍历
for name in names:
print(name)
i = 0
# while i < 4:
while i < len(names):
print(names[i])
i += 1
14- 列表常见操作
14.1 append 增加元素 : 添加元素到列表最后
14.2 insert 插入元素: 根据下标插入元素
14.3 extends 增加列表元素: 列表添加到列表中
14.4 修改元素: 根据下标进行元素修改
14.5 in 查找元素
14.6 not in查找元素
14.7 index 查找元素
14.8 count 统计元素
14.9 del 删除元素
14.10 pop 删除最后一个元素
14.11 remove 根据元素删除元素
14.12 排序 sort
数字 比较大小
字符串 比较地址
"""
14-列表常见操作
"""
names = ["张学友", "张曼玉", "张家辉"]
# 1.增加append insert extend
# 1.1 append 添加最后
names.append("璐璐")
print("append函数:", names)
# append函数: ['张学友', '张曼玉', '张家辉', '璐璐']
# 1.2 insert 插入
names.insert(1,"张学良")
print("insert函数:",names)
# insert函数: ['张学友', '张学良', '张曼玉', '张家辉', '璐璐']
# 1.3 extend 添加列表
ls = ["杜xx", "何xx"]
na = ["岳xx", "董xx"]
ls.extend(na)
print("extend函数:", ls)
# extend函数: ['杜xx', '何xx', '岳xx', '董xx']
# 2.修改元素
names[4] = "刘xx"
print("修改:", names)
# 修改: ['张学友', '张学良', '张曼玉', '张家辉', '刘xx']
# 3.查找
# 3.1 in
print("in函数:", "张学良" in names) # in函数: True
# 3.2 not in
print("not in函数:","杜xx" not in names) # not in函数: True
print("names:", names)
# 3.3 index 找到返回下标 找不到报错
print("index函数:", names.index("张曼玉")) # index函数: 2
# print("index函数:",names.index("张国荣"))
# 3.4 count
print("count函数:",names.count("刘xx")) # count函数: 1
print("count函数:",names.count("张国荣")) # count函数: 0
# 4.删除元素
# 1.del删除元素 根据下标来
del names[4]
print("del删除元素:", names) # del删除元素: ['张学友', '张学良', '张曼玉', '张家辉']
# 2.pop 删除元素 最后一个
names.pop()
print("pop删除元素:", names) # pop删除元素: ['张学友', '张学良', '张曼玉']
# 3.remove 删除元素 元素移除元素
names.remove("张学良")
print("remove删除元素:", names) # remove删除元素: ['张学友', '张曼玉']
# 5.排序 reverse===>True降序====>False升序
lt = [18, 29, 10, 7, 90]
lt.sort(reverse=True)
# lt.sort(reverse=False) 升序 # sort排序 [7, 10, 18, 29, 90]
print("sort排序", lt) # sort排序 [90, 29, 18, 10, 7]
strs = ["a", "b", "d", "f", "aa"]
strs.sort(reverse=True)
print("sort排序",strs) # sort排序 ['f', 'd', 'b', 'aa', 'a']
# id() 获取地址
print(id(strs[0])) # 1629234718344
print(id(strs[3])) # 1629267242656
15- 列表的嵌套
15.1 列表的遍历
range()函数 范围
# 15.列表的嵌套
list = [
[27, 18, 10],
[99, 16],
[77, 88, 66]
]
# 1.列表嵌套遍历 range(0, 3)
# print(len(list)) 输出3
for i in range(len(list)):
# i作为列表的下标
for j in range(len(list[i])):
print(list[i][j], end=" ")
print()
"""
输出:
27 18 10
99 16
77 88 66
"""
16-列表排序
'''
16-列表排序
'''
list = [15, 68, 32, 19, 20, 88, 45]
print(len(list)-1)
for i in range(0, len(list)-1):
for j in range(0, len(list)-1):
# 判断
if list[j] > list[j+1]:
tm = list[j]
list[j] = list[j+1]
list[j+1] = tm
print("显示", list) # 显示 [15, 19, 20, 32, 45, 68, 88]
print("最大值:", list[len(list)-1]) # 最大值: 88
print("最小值:", list[0]) # 最小值: 15
print("最大值:", max(list)) # 最大值: 88
print("最小值:", min(list)) # 最小值: 15
练习:
1.编写程序,完成以下要求:
* 统计字符串中,各个字符的个数
* 比如:“hello world”字符串统计的结果为:
h:1 e:1 l:3 o:2 d:1 r:1 w:1
ps:参考代码见python基础(_day03):05-homework (使用字典存储)。
2.编写程序,完成以下要求:
* 完成一个路径的组装
* 先提示用户多次输入路径,最后显示一个完整的路径,比如/home/python/ftp/share
"""
2.简单demo,最好用join方法练习下
"""
remind= ""
temp=[]
i = 0
while remind != "n":
remind = input("请输入路径,输入‘n’结束输入")
temp.append(remind)
for s in range(len(temp)-1):
print("/%s" %(temp[i]), end="")
i += 1
3. 编写程序,完成“名片管理器”项目
* 需要完成的基本功能:
1.添加名片
2.删除名片
3.修改名片
4.查询名片
5.退出系统
* 程序运行后,除非选择退出系统,否则重复执行功能
ps;参考代码见python基础(_day03)
代码1:08-名片管理器
代码2:13-名片管理器2.0(使用了函数/方法调用)