# 一.基础介绍
# 1.注意点
- 方法要在 main 函数上面定义,脚本语言和 js 一样的,按顺序执行
- tab 和空格的混用,缩进比较敏感
- python 和 go 一样,不需要括号,简洁
- 不需要尾部的分号
- java 中的大括号在 python 中是冒号:,在 go 中是大括号不变{}
- python 中的注释是用#,不是//,注意区别
- bool 类型为 True 和 False
- python 中没有 a++操作但是可以 a+=1
# 2.单行注释
使用#号进行单行注释,并且井号后面空一格
# 注释
# 3.多行注释
文档注释
"""
这是文档注释
"""
2
3
# 4.输入字符
输入的都是字符串类型,如果想要数字,需要使用 int 转换
guess_num = int(input("输入你要猜测的数字:"))
# 二.入门语法
# 1.变量
# 定义一个变量:钱包, 用来存储余额数字
money = 5
# 查看一下,钱包还剩余多少钱
print(money)
2
3
4
# 2.字面量
print(666)
print(13.14)
print("黑马程序员")
2
3
# 3.type
使用 type 判断类型
# 方式1: 使用print直接输出类型信息
print(type("黑马程序员"))
print(type(666))
print(type(11.345))
2
3
4
# 4.类型转换
- str
- int
- float
# 将数字类型转换成字符串
num_str = str(11)
print(type(num_str), num_str)
float_str = str(11.345)
print(type(float_str), float_str)
# 将字符串转换成数字
num = int("11")
print(type(num), num)
num2 = float("11.345")
print(type(num2), num2)
# 错误示例,想要将字符串转换成数字,必须要求字符串内的内容都是数字
# num3 = int("黑马程序员")
# print(type(num3), num3)
# 整数转浮点数
float_num = float(11)
print(type(float_num), float_num)
# 浮点数转整数
int_num = int(11.345)
print(type(int_num), int_num)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 5.标识符
- 内容限定,限定只能使用:中文、英文、数字、下划线,注意:不能以数字开头
- 大小写敏感
- 不可使用关键字
# 规则1:内容限定,限定只能使用:中文、英文、数字、下划线,注意:不能以数字开头
# 错误的代码示范:1_name = "张三"
# 错误的代码示范:name_! = "张三"
name_ = "张三"
_name = "张三"
name_1 = "张三"
# 规则2:大小写敏感
Itheima = "黑马程序员"
itheima = 666
print(Itheima)
print(itheima)
# 规则3:不可使用关键字
# 错误的示例,使用了关键字:class = 1
# 错误的示例,使用了关键字:def = 1
Class = 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 6.不换行
在 Python 中,如果要在 print 语句中输出内容时不换行,可以在 print 语句的末尾加上 end=''
,表示输出结束后不换行。例如:
print('Hello,', end='')
print('world!')
2
这段代码的输出结果为:
Hello,world!
如果想要输出多个内容,可以使用逗号分隔。例如:
print('Hello,', 'world!', end='')
print('Python')
2
这段代码的输出结果为:
Hello, world!Python
# 7.Python 制表符
在 Python 中,制表符可以用 \t
表示。在字符串中使用 \t
表示一个制表符,可以将字符串中的内容按照制表符的宽度进行对齐。例如:
print('Name\tAge\tCity')
print('Tom\t18\tNew York')
print('Jerry\t20\tLos Angeles')
2
3
输出结果为:
Name Age City
Tom 18 New York
Jerry 20 Los Angeles
2
3
在这个例子中,我们使用 \t
将表格中的各个单元格进行了对齐。需要注意的是,制表符的宽度是固定的,通常为 8 个空格宽度,但在不同的终端或编辑器中,制表符的宽度可能会有所不同。
# 8.布尔类型
# 定义变量存储布尔类型的数据
bool_1 = True
print(f"bool_1={bool_1}")
bool_2 = False
print(f"bool_1变量的内容是:{bool_1}, 类型是:{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2}, 类型是:{type(bool_2)}")
2
3
4
5
6
7
# 三.字符串
# 1.字符串拼接
# 字符串字面量之间的拼接
print("学IT来黑马" + "月薪过万")
# 字符串字面量和字符串变量的拼接
name = "黑马程序员"
address = "建材城东路9号院"
tel = 4006189090
# 不报错
print("我是:" + name + ",我的地址是:" + address + ",我的电话是:" + str(tel))
# 报错
print("我是:" + name + ",我的地址是:" + address + ",我的电话是:" + tel)
2
3
4
5
6
7
8
9
10
11
12
# 2.字符串格式化
- 占位符
- %s 字符串
- %d 整数
- %f 浮点数
- 使用 f”包裹字符串”
# 通过占位的形式,完成拼接
name = "黑马程序员"
message = "学IT来:%s" % name
print(message)
# 通过占位的形式,完成数字和字符串的拼接
class_num = 57
avg_salary = 16781
message = "Python大数据学科,北京%s期,毕业平均工资:%s" % (class_num, avg_salary)
print(message)
name = "传智播客"
setup_year = 2006
stock_price = 19.99
message = "%s,成立于:%d,我今天的股价是:%f" % (name, setup_year, stock_price)
print(message)
num1 = 11
num2 = 11.345
print("数字11宽度限制5,结果是:%5d" % num1)
print("数字11宽度限制1,结果是:%1d" % num1)
print("数字11.345宽度限制7,小数精度2,结果是:%7.2f" % num2)
print("数字11.345不限制,小数精度2,结果是:%.2f" % num2)
bool_1 = True
bool_2 = False
print(f"bool_1变量的内容是:{bool_1}, 类型是:{type(bool_1)}")
print(f"bool_2变量的内容是:{bool_2}, 类型是:{type(bool_2)}")
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 3.单双引号
在 Python 中,单引号和双引号都可以用来表示字符串。这两种引号的作用是相同的,都可以用来创建字符串。
通常情况下,使用单引号或双引号都可以,但是在某些情况下,你可能需要使用其中一种引号来避免错误。
例如,如果你需要在字符串中包含单引号,那么你可以使用双引号来创建字符串,以避免引号冲突。同样地,如果你需要在字符串中包含双引号,那么你可以使用单引号来创建字符串。
下面是一个示例代码:
string1 = "I'm using double quotes to create this string."
string2 = 'I am using single quotes to create this string, and it contains a "double quote" character.'
2
在这个代码中,string1
使用双引号创建字符串,并包含一个单引号字符。string2
使用单引号创建字符串,并包含一个双引号字符。
总之,使用哪种引号来创建字符串是个人偏好问题,但在一些特定情况下,需要使用一种引号来避免引号冲突。
# 4.字符串的打印
print(f"message = {name},成立于:{setup_year},我今天的股价是:{stock_price}")
# 四.判断语句
# 1.if 语句
age = 10
if age >= 18:
print("我已经成年了")
print("即将步入大学生活")
print("时间过的真快呀")
2
3
4
5
6
7
# 2.else 语句
age = int(input("请输入你的年龄:"))
if age >= 18:
print("您已成年,需要买票10元。")
else:
print("您未成年,可以免费游玩。")
2
3
4
5
# 3.elif 语句
# 通过if判断,可以使用多条件判断的语法
# 第一个条件就是if
if int(input("请输入你的身高(cm):")) < 120:
print("身高小于120cm,可以免费。")
elif int(input("请输入你的VIP等级(1-5):")) > 3:
print("vip级别大于3,可以免费。")
elif int(input("请告诉我今天几号:")) == 1:
print("今天是1号免费日,可以免费")
else:
print("不好意思,条件都不满足,需要买票10元。")
2
3
4
5
6
7
8
9
10
11
# 五.循环语句
# 1.while
i = 0
while i < 100:
print("小美,我喜欢你")
i += 1
2
3
4
# 2.九九乘法表
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层循环的print语句,不要换行,通过\t制表符进行对齐
print(f"{j} * {i} = {j * i}\t", end='')
j += 1
i += 1
print() # print空内容,就是输出一个换行
2
3
4
5
6
7
8
9
10
11
# 3.for 循环
# 统计如下字符串中,有多少个字母a
# name = "itheima is a brand of itcast"
name = [1, 2, 3, 4, 5]
# 定义一个变量,用来统计有多少个a
count = 0
# for 循环统计
# for 临时变量 in 被统计的数据:
for x in name:
if x == 3:
count += 1
print(f"被统计的字符串中有{count}个a")
2
3
4
5
6
7
8
9
10
11
# 4.range
# range 语法3 range(num1, num2, step)
for x in range(5, 10, 3):
# 从5开始,到10结束(不包含10本身)的一个数字序列,数字之间的间隔是2
print(x)
2
3
4
# 5.变量作用域
i = 0
for i in range(5):
print(i)
print(i+1)
2
3
4
输出:
0 1 2 3 4 5
# 6.continue
import random
num = random.randint(1, 10)
# 演示循环中断语句 continue
for i in range(1, 6):
print("语句1")
continue
print("语句2")
# 演示continue的嵌套应用
for i in range(1, 6):
print("语句1")
for j in range(1, 6):
print("语句2")
continue
print("语句3")
print("语句4")
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 7.break
# 演示循环中断语句 break
for i in range(1, 101):
print("语句1")
break
print("语句2")
print("语句3")
# 演示break的嵌套应用
for i in range(1, 6):
print("语句1")
for j in range(1, 6):
print("语句2")
break
print("语句3")
print("语句4")
print(num)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 8.内层循环结束外层循环
在 Python 中,可以使用break
语句来结束循环。如果你想在内层循环结束外层循环,你可以在内层循环中使用break
语句,并在外层循环中使用else
语句来检查内层循环是否已经被break
中断了。
下面是一个示例代码:
for i in range(10):
for j in range(10):
if j == 5:
break
else:
continue
break
2
3
4
5
6
7
在这个代码中,外层循环是一个简单的for
循环,它迭代 10 次。内层循环也是一个简单的for
循环,它也迭代 10 次。但是,当内层循环的j
变量等于 5 时,内层循环会用break
语句中止。当内层循环被中止时,else
语句不会执行,因此外层循环会继续执行。但是,当外层循环执行到break
语句时,它也会中止,从而结束整个循环。这样,你就可以在内层循环结束时结束外层循环了。
# 9.nonlocal使用
下面是一个使用 nonlocal
的简单示例,展示了如何在嵌套函数中修改外部函数的局部变量:
def outer():
counter = 0
def inner():
nonlocal counter # 声明counter为非局部变量
counter += 1
for _ in range(5):
inner()
print(counter) # 输出将是5
outer()
2
3
4
5
6
7
8
9
10
11
12
在这个例子中,inner
函数通过 nonlocal
关键字声明了 counter
变量,使其能够访问并修改 outer
函数中的 counter
变量。
与
global的区别:
global
关键字用于在函数内部声明一个变量为全局变量,即它指向的是全局作用域中的变量。而 nonlocal
用于声明一个变量为非局部变量,即它指向的是最近的非全局作用域中的变量。简而言之,global
用于全局作用域,而 nonlocal
用于局部作用域。