第一个Python程序

打开CMD(命令提示符)程序,输入Python并回车

然后,在里面输入代码回车即可立即运行

1
2
3
4
Python 3.11.7 (tags/v3.11.7:fa7a6f2, Dec  4 2023, 19:24:49) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!!!")
Hello World!!!

Python解释器

我们可以将代码,写入一个以.py结尾的文件中,使用python命令去运行它

如,在Windows系统的D盘,新建一个名为:test.py的文件,并通过记事本程序打开它,输入以下内容:

1
print("Hello World!!!")

在”命令提示符“程序内,使用python命令运行它

1
2
C:\Users\lenovo>python d:\test.py
Hello World!!!

字面量

字面量:在代码中,被写下来的固定的值,称之为字面量

常用的值类型

Python中常用的有6种值(数据)的类型

  1. 数字(Number)

    支持

    • 整数(int):10、-10
    • 浮点数(float):13.14、-13.14
    • 复数(complex):4+3j,以j结尾表示复数
    • 布尔(bool):表达现实生活中的逻辑,即真和假,True表示真,False表示假。
      True本质上是一个数字记作1,False记作0
  2. 字符串(String):描述文本的一种数据类型,由任意数量的字符组成

  3. 列表(List):有序的可变序列,Python中使用最频繁的数据类型,可有序记录一堆数据

  4. 元组(Tuple):有序的不可变序列,可有序记录一堆不可变的Python数据集合

  5. 集合(Set):无序不重复集合,可无序记录一堆不重复的Python数据集合

  6. 字典(Dictionary):无序Key-Value集合,可无序记录一堆Key-Value型的Python数据集合

注释

注释的分类

  • 单行注释:以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用(#号和注释内容一般建议以一个空格隔开)
  • 多行注释:以一对三个双引号引起来(“”“注释内容”“”)来解释说明一段代码的作用和使用方法

Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"""
本代码演示了:
- 各类字面量的写法
- 通过print语句输出各类字面量
"""
# 写一个整数字面量
666
# 写一个浮点数字面量
13.14
# 写一个字符串字面量
"python"
# 通过print语句输出各类字面量
print(666)
print(13.14)
print("python")

运行结果

1
2
3
666
13.14
python

变量

变量:在程序运行时,能储存计算结果或能表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的

变量的定义格式:变量名称=变量的值

  • 每一个变量都有自己的名称,称之为:变量名,也就是变量本身
  • 赋值,表示将等号右侧的值,赋予左侧的变量
  • 每一个变量都有自己存储的值(内容),称之为:变量值

Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"""
演示Python中变量的相关操作
"""

# 定义一个变量,用来记录钱包余额
money = 50
# 通过print语句,输出变量记录的内容
print("钱包还有:", money)
# 买了一个冰淇淋,花费10元
money = money - 10
print("买了冰淇淋花费10元,还剩余:", money, "元")

#假设,每个一个小时,输出一下钱包的余额
print("现在是下午1点,钱包余额剩余:", 40)
print("现在是下午2点,钱包余额剩余:", 40)
print("现在是下午3点,钱包余额剩余:", money)
print("现在是下午4点,钱包余额剩余:", money)

运行结果

1
2
3
4
5
6
钱包还有: 50
买了冰淇淋花费10元,还剩余: 40
现在是下午1点,钱包余额剩余: 40
现在是下午2点,钱包余额剩余: 40
现在是下午3点,钱包余额剩余: 40
现在是下午4点,钱包余额剩余: 40

数据类型

类型 描述 说明
string 字符串类型 用引号引起来的数据都是字符串
int 整型(有符号) 数字类型,存放整数 如-1,10,0等
float 浮点型(有符号) 数字类型,存放小数,如-3.14,6.66

我们可以通过type()语句来得到数据的类型:

语法:type(被查看类型的数据)

type()语句的使用方式

  1. 在print语句中,直接输出类型信息
  2. 用变量存储type()的结果(返回值)
  3. 使用type()语句,查看变量中存储的数据类型信息

Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 方式1:使用print直接输出类型信息
print(type("python"))
print(type(666))
print(type(11.345))
# 方式2:使用变量存储type()语句的结果
string_type = type("python")
int_type = type(666)
float_type = type(11.345)
print(string_type)
print(int_type)
print(float_type)
# 方式3:使用type()语句,查看变量中存储的数据类型信息
name = "python"
name_type = type(name)
print(name_type)

运行结果

1
2
3
4
5
6
7
<class 'str'>
<class 'int'>
<class 'float'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'str'>

数据类型转换

数据类型之间,在特定的场景下,是可以互相转换的,如字符串转数字、数字转字符串

常见的转换语句

语句(函数) 说明
int(x) 将x转换为一个整数
float(x) 将x转换为一个浮点数
str(x) 将对象x转换为字符串

Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 将数字类型转换成字符串
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("Python")
# 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)

运行结果

1
2
3
4
5
6
<class 'str'> 11
<class 'str'> 11.345
<class 'int'> 11
<class 'float'> 11.345
<class 'float'> 11.0
<class 'int'> 11

标识符

在python程序中,我们可以给很多东西起东西,比如:

  • 变量的名字
  • 方法的名字
  • 类的名字,等等

这些名字,我们把它统一的称之为标识符,用来做内容的标识

所以标识符是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名

标识符命名规则-内容限定

标识符命名中,只允许出现:

  • 英文
  • 中文
  • 数字
  • 下划线(_)

这四类元素,其余任何内容都不被允许

标识符命名规则-大小写敏感

标识符命名规则-不可使用关键字

变量命名规范-见名知意

变量命名规范-下划线命名法

变量命名规范-英文字母全小写

运算符

算术(数学)运算符

运算符 描述 实例
+ 两个对象相加a+b输出结果30
- 得到负数或是一个数减去另一个数a-b输出结果-10
* 两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200
/ b/a输出结果2
// 取整除 返回商的整数部分9//2输出结果4,9.0//2.0输出结果4.0
% 取余 返回除法的余数b%a输出结果0
** 指数 a**b为10的20次方,输出结果100000000000000000000

赋值运算符

运算符 描述 实例
= 赋值运算符 把=号右边的结果赋给左边的变量,如num=1+2*3,结果num的值为7

复合赋值运算符

运算符 描述 实例
+= 加法赋值运算符 c+=a等效于c=c+a
-= 减法赋值运算符 c-=a等效于c=c-a
*= 乘法赋值运算符 c*=a等效于c=c*a
/= 除法赋值运算符 c/=a等效于c=c/a
%= 取模赋值运算符 c%=a等效于c=c%a
**= 幂赋值运算符 c**=a等效于c=c**a
//= 取整除赋值运算符 c//=a等效于c=c//a

字符串的三种定义方式

字符串在Python中有多种定义形式

  1. 单引号定义法:name='Python'
  2. 双引号定义法:name="Python"
  3. 三引号定义法:name="""Python"""

三引号定义法,和多行注释的写法一样,同样支持换行操作

使用变量接收它,他就是字符串

不使用变量接收它,就可以作为多行注释使用

字符串的引号嵌套

  • 单引号定义法,可以内含双引号
  • 双引号定义法,可以内含单引号
  • 可以使用转移字符(\)来将引号解除效用,变成普通字符串

Demo

1
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
30
"""
演示字符串的三种定义方式:
- 单引号定义法
- 双引号定义法
- 三引号定义法
"""

# 单引号定义法,使用单引号进行包围
name = 'Python'
print(type(name))
# 双引号定义法
name = "Python"
print(type(name))
# 三引号定义法,写法和多行注释是一样的
name = """
Hello
World
"""
print(type(name))
# 在字符串内 包含双引号
name = '"Python"'
print(name)
# 在字符串内 包含单引号
name = "'Python'"
print(name)
# 使用转义字符\解除引号的效用
name = "\"Python\""
print(name)
name = '\'Python\''
print(name)

运行结果

1
2
3
4
5
6
7
<class 'str'>
<class 'str'>
<class 'str'>
"Python"
'Python'
"Python"
'Python'

字符串的拼接

如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成

不过一般,单纯的2个字符串字面量进行拼接显得很呆,一般,字面量和变量或变量和变量之间会使用拼接

Demo

1
2
3
4
5
6
#字符串字面量之间的拼接
print("hello"+"world")
#字符串字面量和字符串变量的拼接
name= "张三"
address = "胜利东路9号"
print("我是:" + name + ",我的地址是:" + address)

运行结果

1
2
helloworld
我是:张三,我的地址是:胜利东路9

字符串格式化

%s

  • %表示:我要占位
  • s表示:将变量变成字符串放入占位的地方

多个变量占位,变量要用括号括起来,并按照占位的顺序填入

Python中支持非常多的数据类型占位,最常用的是如下三类

格式符号 转化
%s 将内容转换成字符串,放入占位位置
%d 将内容转换成整数,放入占位位置
%f 将内容转换成浮点型,放入占位位置

Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#通过占位的形式,完成拼接
name = "张三"
message = "我是:%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)

运行结果

1
2
3
我是:张三
Python大数据学科,北京57期,毕业平均工资:16781
张三播客,成立于:2006,我今天的股价是:19.990000

字符串格式化的精度控制

我们可以使用辅助符号”m.n”来控制数据的宽度和精度

  • m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效

  • .n,控制小数点精度,要求是数字,会进行小数的四舍五入

    示例:

  • %5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。

  • %5.2f:表示将宽度控制为5,将小数点精度设置为2

    小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f后,结果是:[空格][空格]11.35.2个空格补足宽度,小数部分限制2位精度后,四舍五入为.35

Demo

1
2
3
4
5
6
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)

运行结果

1
2
3
4
数字11宽度限制5,结果是:   11
数字11宽度限制1,结果是:11
数字11.345宽度限制7,小数精度2,结果是: 11.35
数字11.345不限制,小数精度2,结果是:11.35

字符串格式化的方式2

可以通过f"{变量}{变量}“的方式进行快速格式化

这种方式不理会类型,不做精度控制,适合对精度没有要求的时候快速使用

Demo

1
2
3
4
5
6
7
8
"""
演示第二种字符串格式化的方式:f"{占位}"
"""
name = "张三播客"
set_up_year = 2006
stock_price = 19.99
# f: format
print(f"我是{name},我成立于:{set_up_year}年,我今年的股价是:{stock_price}")

运行结果

1
我是张三播客,我成立于:2006年,我今年的股价是:19.99

对表达式进行格式化

表达式:一条具有明确执行结果的代码语句

如:

1+1、5*2,就是表达式,因为有具体的结果,结果是一个数字

又或者,常见的变量定义:

name=”张三” age=11+11

等号右侧的都是表达式,因为它们有具体的结果,结果赋值给了等号左侧的变量

在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码

Demo

1
2
3
4
5
6
"""
演示对表达式进行字符串格式化
"""
print("1 * 1的结果是:%d" % (1 * 1))
print(f"1 * 2的结果是:{1 * 2}")
print("字符串在Python中的类型名是:%s" % type("字符串"))

运行结果

1
2
3
1 * 1的结果是:1
1 * 2的结果是:2
字符串在Python中的类型名是:<class 'str'>

字符串格式化练习题讲解

股价计算小程序

定义如下变量:

  • name,公司名
  • stock_price,当前股价
  • stock_code,股票代码
  • stock_price_daily_growth_factor,股票每日增长系数,浮点数类型,比如1.2
  • growth_days,增长天数

计算,经过growth_days天的增长后,股票达到了多少钱

使用字符串格式化进行输出,如果是浮点数,要求小数点精度2位数

1
2
3
4
5
6
7
8
9
10
11
12
13
"""
讲解字符串格式化的课后习题
"""
#定义需要的变量
name = "张三播客"
stock_price = 19.99
stock_code = "003032"
#股票 价格 每日 增长 因子
stock_price_daily_growth_factor = 1.2
growth_days = 7
finally_stock_price = stock_price * stock_price_daily_growth_factor ** growth_days
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数:%.1f,经过%d天的增长后,股价达到了:%.2f" % (stock_price_daily_growth_factor,growth_days,finally_stock_price))

运行结果

1
2
公司:张三播客,股票代码:003032,当前股价:19.99
每日增长系数:1.2,经过7天的增长后,股价达到了:71.63

数据输入(input语句)

我们前面学习过print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。

在Python中,与之对应的还有一个input语句,用来获取键盘输入。

  • 数据输出:print
  • 数据输入:input

使用上也非常简单:

  • 使用input()语句可以从键盘获取输入
  • 使用一个变量接收(存储)input语句获取的键盘输入数据即可
  • input()语句可以在要求使用者输入内容前输出提示内容,在input的括号内直接填入提示内容即可
  • 无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型

Demo

1
2
3
4
5
6
7
8
9
10
11
"""
演示Python的input语句
获取键盘的输入信息
"""
name = input("请告诉我你是谁?")
print("我知道了,你是:%s" % name)
#输入数字类型
num = input("请告诉我你的银行卡密码:")
#数据类型转换
num = int(num)
print("你的银行卡密码的类型是:",type(num))

运行结果

1
2
3
4
请告诉我你是谁?zhangsan
我知道了,你是:zhangsan
请告诉我你的银行卡密码:123
你的银行卡密码的类型是: <class 'int'>