黑马Python教程笔记 —— 不断更新

2018-05-04  本文已影响0人  gghxr

更新记录

2018.5.24 ,更新190 ~ 195
2018.5.27, 更新196 ~ 201,下面的课程要开始讲实例了,期待


064

065

067

068

077

078 变量的命名

079 关键字

080 变量的命名规则

082 if语句的基本语法

084 比较关系运算符

087

088

# 注意"18"和"else"后面的":"
if age >=18:
    print("可以进入")
else:
    print("禁止进入")

089

091

095 elif

if 条件1:
    条件1满足时执行的代码
elif 条件2:
    条件2满足时执行的代码
elif 条件3:
    条件3满足时执行的代码
else:
    以上条件都不满足时执行的代码

098 if的嵌套格式

if 条件1:
    条件1满足时执行的代码
    ……
    if 条件1基础上的条件2:
        条件2成立时执行的代码
    else:
        条件2不满足时执行的代码
else:
    条件1不满足时执行的代码

100 整体缩进与回退

106 随机函数

import random

110 循环

初始条件设置——通常是重复执行的 计数器
while 条件(判断 计数器 是否达到 目标次数):
    条件满足时,做的事情1
    条件满足时,做的事件2
    ……
    处理条件(计数器 + 1)

114 赋值运算符

115 计数方法

120 break 和 continue

123

124 循环的嵌套

126 嵌套演练-小星星

132 转义字符

133 函数基础

137

139

140

141 函数的基本使用

142 函数的参数

def sum_2_num():
    """对两个数字的求和"""

    num1 = 10
    num2 = 20

    result = num1 + num2

    print("%d + %d = %d"%(num1,num2,result))

sum_2_num()

143

def sum_2_num(num1,num2):
    """对两个数字的求和"""

    result = num1 + num2
    print("%d + %d = %d"%(num1,num2,result))

sum_2_num(40,30)

144 形参与实参

def sum_2_num(num1,num2):

定义函数时的 num1和num2 是 形参
sum_2_num(40,30)
调用函数时的 40和30 是 实参

145 函数的返回值

146 函数返回值举例

def sum_2_num(num1,num2):
    """对函数的求和"""
    result = num1 + num2

    #可以使用返回值,告诉函数一方结果
    return(result)

#可以使用变量来接收函数的返回值
sum_result = sum_2_num(10,20) 

print("计算结果:%d"%sum_result)

147 Return的使用注意事项

148 函数的嵌套调用

# hm_07_函数的嵌套调用
def test1():
    print("*" * 50)

def test2():
    print("-" * 50)

    test1()

    print("+" * 50)

test2()

150

# hm_08_打印分隔线

def print_line(char,times):

    print(char * times)

print_line("hi ", 40)

152

# 函数的嵌套
def print_line(char, times):

    print(char * times)


def print_lines(char, times, col):

    row = 1
    while row <= col:
        print_line(char, times)
        row += 1

print_lines("% ", 20, 2)

153 Pycharm小技巧

def print_line(char, times):

    print(char * times)


def print_lines(char, times, col):
    """打印多行分隔线   --->此处描绘整个函数的作用
                                    --->自动留空
    :param char:分隔线使用的分隔字符   --->冒号后该形参的作用
    :param times:分隔字符重复的次数   --->冒号后该形参的作用
    :param col:分隔线出现的行数   --->冒号后该形参的作用
    """
    row = 1
    while row <= col:
        print_line(char, times)
        row += 1

print_lines("% ", 20, 2)

154 模块

156

157 pyc文件

158 几种数据类型

159 列表

举例:name_list = ["zhangsan","lisi","wangwu"]

160

161 列表有哪些操作?

162 列表的“增”、“删”、“改”、“查”

166 del

name_list = ["张三","李四","王五"]

# 使用del关键字(delete)删除列表元素
# 提示:在日常开发中,要从列表删除数据,建议使用列表提供的方法
del name_list[1]

# del关键字本质上是用来将一个变量从内存中删除
name = "小明"

del name

# 注意:如果使用del关键字将变量从内存中删除
# 后续的代码就不能再使用这个变量了

print(name)
print(name_list)

167

name_list = ["张三","李四","王五","王小二","张三"]

# len函数可以统计列表中元素的总数
list_len = len(name_list)
print("列表中包含 %d 个元素"%list_len)

# count方法可以统计列表中某一个元素出现的次数
count = name_list.count("张三")
print("张三出现了 %d 次"%count)

#从列表中删除数据
name_list.remove("张三")

print(name_list)

168 列表排序

name_list = ["zhangsan","lisi","wangwu","wangxiaoer"]
num_list = [6, 8, 4, 1, 10]

# 升序 ==>sort方法
# name_list.sort()
# num_list.sort()

# 降序 ==>sort方法
# name_list.sort(reverse=True)  # True 的 T 必须大写
# num_list.sort(reverse=True)

# 逆序 ==>reverse方法
name_list.reverse()
num_list.reverse()

print(name_list)
print(num_list)

169 关键字、函数和方法

import keyword
print(keword.kwlist)
len(keword.kwlist) # 有33个关键字

170 列表的循环遍历

name_list = ["zhangsan","lisi","wangwu","wangxiaoer"]

# 使用迭代遍历列表
"""
顺序的从列表中依次获取数据,每一次循环过程中,数据都会保存在
my_name 这个变两种,在循环体内部可以访问到当前这一次获取到的数据

for my_name in 列表变量:

    print("我的名字叫: %s"%my_name)
"""
for my_name in name_list:

    print("我的名字叫: %s"%my_name)

171

172 元组

173

174

info_tuple = ("zhangsan",18,1.75,"zhangsan")

# 1. 取值和取索引
print(info_tuple[0])
# 根据已知值查索引
print(info_tuple.index("zhangsan"))

# 2. 统计计数
print(info_tuple.count("zhangsan"))
# 统计元组中包含的元素的个数
print(len(info_tuple))

175

176 元组的应用场景

177

# 本例用以验证:格式化字符串后面的()本质上就是元组

info_tuple = ("小明",21,1.75)
# 格式化字符串后面的()本质上就是元组
# 正常情况下我们会这么写:print("%s 年龄是 %d 身高是 %.2f"%("小明",21,1.75))
print("%s 年龄是 %d 身高是 %.2f"%info_tuple)
info_str = "%s 年龄是 %d 身高是 %.2f"%info_tuple
print(info_str)

190 - 字符串的查找与替换

hello_str = "hello world"

# 1. 判断是否以指定字符串开始
print(hello_str.startswith("Hello"))

# 2. 判断是否以指定字符串结束
print(hello_str.endswith("world"))

# 3. 查找指定字符串
# index同样可以查找指定的字符在大字符串中的索引
print(hello_str.find("llo"))
# index方法如果指定的字符串不存在,会报错
# find方法如果指定的字符串不存在,会返回-1
print(hello_str.find("abc"))

# 4. 替换字符串
# replace方法执行完成之后,会返回一个新的字符串
# 注意,不会修改原有字符串的内容
print(hello_str.replace("world","python"))
方法 说明
string.startswith(str) 检查字符串是否是以 str 开头,是则返回 True
string.endswith(str) 检查字符串是否是以 str 结束,是则返回 True
string.find(str, start=0, end=len(string)) 检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
string.rfind(str, start=0, end=len(string)) 类似于 find(),不过是从右边开始查找
string.index(str, start=0, end=len(string)) 跟 find() 方法类似,不过如果 str 不在 string 会报错
string.rindex(str, start=0, end=len(string)) 类似于 index(),不过是从右边开始
string.replace(old_str, new_str, num=string.count(old)) 把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次

191 文本对齐相关

# 假设:以下内容是从网络上抓取的
# 要求:顺序并且居中对齐输出以下内容
poem = ["登鹳雀楼",
        "王之涣",
        "白日依山尽",
        "黄河入海流",
        "欲穷千里目",
        "更上一层楼",]

for poem_str in poem:

    print("|%s|"%poem_str.center(10," ")) #此处填充中文空格
    print("|%s|"%poem_str.ljust(10," ")) #此处填充中文空格
    print("|%s|"%poem_str.rjust(10," ")) #此处填充中文空格
方法 说明
string.ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

192 去除空白字符

方法 说明
string.lstrip() 截掉 string 左边(开始)的空白字符
string.rstrip() 截掉 string 右边(末尾)的空白字符
string.strip() 截掉 string 左右两边的空白字符
# 假设:以下内容是从网络上抓取的
# 要求:顺序并且居中对齐输出以下内容
poem = ["\t\n登鹳雀楼",
        "王之涣",
        "白日依山尽\t\n",
        "黄河入海流",
        "欲穷千里目",
        "更上一层楼",]

for poem_str in poem:

    #先使用strip方法去除字符串中的空白字符
    #再使用center方法居中显示文本
    print("|%s|"%poem_str.strip().center(10," ")) 

193 字符串拆分与连接的方法

# 假设:以下内容是从网络上抓取的
# 要求:
# 1. 将字符串中的空白字符全部去掉
# 2. 再使用“ ”作为分隔符,拼接成一个整齐的字符串
poem_str = "登鹳雀楼\t   王之涣\t  白日依山尽\t \n   黄河入海流\t  欲穷千里目\t \n 更上一层楼 \t"

print(poem_str)

# 1. 拆分字符串
poem_list = poem_str.split()

print(poem_list)
# 2. 合并字符串
result = " ".join(poem_list)
print(result)

194 字符串的切片

195

num_str = "0123456789"

# - 1. 截取从 2 ~ 5 位置 的字符串
print(num_str[2:6])

# - 1. 截取从 2 ~ 末尾 的字符串
print(num_str[2:])

# - 1. 截取从 开始 ~ 5 位置 的字符串
print(num_str[0:6])

# - 1. 截取完整的字符串
print(num_str[:])

# - 1. 从开始位置,每隔一个字符截取字符串
print(num_str[0:9:2])

# - 1. 从索引 1 开始,每隔一个取一个
print(num_str[1::2])

# - 1. 截取从 2 ~ 末尾 - 1 的字符串
print(num_str[2:-1])

# - 1. 截取字符串末尾两个字符
print(num_str[-2:])

# - 1. 字符串的逆序(面试题)
# 注意:切片的时候,如果步长为负数,那么就认为从右向左切
# 所以此处可以不用指定起始位置为-1,也可以逆序输出
print(num_str[::-1])

196

t_dict = {"a":"z","b":"y","c":"x"}
max(t_dict) # 返回值为 c
min(t_dict) # 返回值为 a,只比较了key

197

198 运算符

199

运算符 Python 表达式 结果 描述 支持的数据类型
in 3 in (1, 2, 3) True 元素是否存在 字符串、列表、元组、字典
not in 4 not in (1, 2, 3) True 元素是否不存在 字符串、列表、元组、字典

200 for...else

  for num in [1, 2, 3]:
      print(num)
  
      if num == 2:
          break
  else:
          # 如果循环体内部使用break退出了循环,
          # else下方的代码就不会被执行。
          print("测试本段代码是否会执行")
  print("结束循环")

For...else实例

students = [
    {"name":"小美"},
    {"name":"阿土"}
]

# 在学员列表中搜索指定的姓名
find_name = "小"

for stu_dict in students:

    print(stu_dict)
    if stu_dict["name"] == find_name:

        print("We find! %s"% find_name)
        # 如果已经找到,应该直接退出循环,而不再遍历后续的元素。
        break
else:
    # 如果希望在搜索列表时,所有的字典检查之后,都没有发现需要搜索的目标
    # 还希望得到一个统一的提示,就会用else
    # 如果把else放在if对应的位置,就会发现,起作用时,会多次输出,不是我们想要的。
    print("查无此人")
print("loop over")

END

上一篇 下一篇

猜你喜欢

热点阅读