1. Python 基础入门

1. 认识 Python

1.1 解释器

编译器:将其他语言翻译成机器语言的工具。
编译器的翻译方式:①编译;②解释。

在这里插入图片描述

编译型语言:所有代码编译完成后一起执行。执行效率高,依赖编译器,跨平台性差些。如 C、C++。
解释型语言:解释一句,执行一句。执行速度较慢,但跨平台性好。如 Python。

1.2 Python 特点

  • Python 是完全面向对象的语言:
    • 函数、模块、数字、字符串都是对象,在 Python 中一切皆对象。
    • 完全支持继承、重载、多重继承。
    • 支持重载运算符,也支持泛型设计。
  • Python 拥有一个强大的标准库,Python 语言的核心只包含 数字、字符串、列表、字典、文件 等常见类型和函数,而由 Python 标准库提供了 系统管理、网络通信、文本处理、数据库接口、图形系统、XML 处理 等额外的功能。
  • Python 社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖 科学计算、人工智能、机器学习、Web 开发、数据库接口、图形系统 多个领域。

2. Pycharm 快捷键(自己配置过)

Ctrl + Alt + S:打开设置
Ctrl + Alt +⬇:复制当前行代码到下一行
Ctrl + D:删除当前行(完全删除,无空行)
Ctrl + R:运行当前程序
Ctrl + /:注释、取消注释
Ctrl + P:显示函数或方法的参数提示
Shift + ⬇:在多行的当前列添加光标
Shift +F6:重命名当前文件
Shift + Enter:从上一行的任意位置切换到下一行
Alt + ⬇:下移行
Alt + ⬆:上移行
Alt + 鼠标左键:在任意位置添加多处光标
Alt + Enter:导入所需的包

3. 数据类型总览

类型描述说明
数字(Number)整数(int)
浮点数(float)
复数(complex)
布尔(bool)
复数(complex),如:4+3j,以 j 结尾表示复数
布尔(bool),True 表示真,False 表示假。True 本质是一个数字,记作 1,False 记作 0。
字符串(String)描述文本的一种数据类型字符串由任意数量的字符组成,如:中文、英文、各类符号、数字等
列表(List)有序的可变序列Python 中使用最频繁的数据类型,可有序记录一堆数据
元组(Tuple)有序的不可变序列可有序记录一堆不可变的 Python 数据集合
集合(Set)无序不重复集合可无序记录一堆不重复的 Python 数据集合
字典(Dictionary)无序 key-value 集合可无序记录一堆 key-value 型的 Python 数据集合

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

print(123)
print("pycharm")

4. 注释

  • 单行注释:以 ”#“ 开头,”#“ 与注释内容之间一般空一个格。用于解释一行或一小部分代码。
  • 多行注释:用一对 ”3个双引号“引起来,用于解释 Python文件、类或方法。
# 单行注释

"""
    多行注释
"""

5. 变量

变量:在程序运行时,记录数据用的。
变量定义的格式:变量名 = 变量值(注意:没有数据类型)。
变量的特征:值可以改变。

print 语句输出多份内容时,用逗号隔开即可:print(内容1, 内容2, 内容3)

【例】钱包余额(变量名:money),初始余额50。在购买了:冰淇淋10元,可乐5元后,钱包余额还剩余多少元。请通过 print 语句按照下图所示,进行输出:

money = 50
print("购买冰淇淋和可乐后,剩余",money-10-5,"元")

输出结果:

购买冰淇淋和可乐后,剩余 35

6. 数据类型

type() 语句的使用方式:

  • 在 print 语句中输出类型信息

    print(type(123))
    print(type(1.57))
    print(type("pycharm"))
    

    输出结果:

    <class 'int'>
    <class 'float'>
    <class 'str'>
    
  • 用变量存储 type() 的返回值

    int_type = type(123)
    float_type = type(1.57)
    str_type = type("pycharm")
    print(int_type)
    print(float_type)
    print(str_type)
    

    输出结果

    <class 'int'>
    <class 'float'>
    <class 'str'>
    
  • 除了查看字面量的类型,type() 也可以查看变量中存储的数据类型

    name = "pycharm"
    print(type(name))
    

    输出结果:

    <class 'str'>
    

question:通过 type(变量) 可以输出类型,这时查看的是 “变量的类型” 还是 “数据的类型”?
answer:查看的是:变量存储的数据的类型。因为:变量无类型,但是它存储的数据有类型。

理解:变量是盒子,数据是球。如:字符串变量,指变量存储了字符串,而不是变量就是字符串。
在这里插入图片描述

7. 数据类型转换

语句(函数)说明
int(x)将 x 转换为一个整数
float(x)将 x 转换为一个浮点数
str(x)将 x 转换为字符串
(所有类型均可转成字符串
字符串转成其他,要在形式上能转才行)

上面三个函数与前面的 type() 一样,都是有返回值的。可以直接输出,或用一个变量来接收。

【例】

# 字符串转整数
num1 = int("234")
print(type(num1),num1)
# 字符串转浮点数
num2 = float("4.56")
print(type(num2),num2)
# 整数转字符串
num_str = str(123)
print(type(num_str),num_str)

# num3 = int("pycharm") # 不能转成int
# print(type(num3),num3)

# 整数转浮点数
float_num = float(233)
print(type(float_num),float_num)
# 浮点数转整数
int_num = int(13.734) # 舍掉小数部分
print(type(int_num),int_num)

输出结果:

<class 'int'> 234
<class 'float'> 4.56
<class 'str'> 123
<class 'float'> 233.0
<class 'int'> 13

8. 标识符

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

标识符命名规则(必须遵守):
(1)内容限定:只允许出现:英文、中文(不推荐)、数字、下划线 这四类元素。不能以数字开头。
(2)区分大小写。如:num 和 Num 是不同的变量。
(3)不可使用关键字。关键字也是区分大小写的,如果标识符与关键字的字母相同,但大小写不同,就不算占用关键字。
在这里插入图片描述

标识符命名规范(更加规范):
  不同的标识符(变量、类、方法)有不同的命名规范,由于现阶段只接触了变量,所以下面仅介绍变量的命名规范:
(1)见名知义,但不要太长。
(2)下划线命名法,多个单词组合变量名,要使用下划线做分隔。如:student_name。
(3)英文字母全小写。

9. 运算符

9.1 算术运算符

运算符描述实例
+(1) 两个对象相加
(2) 字符串拼接
-(1) 得到负数
(2) 一个数减去另一个数
*(1) 两个数相乘
(2) 返回一个被重复若干次的字符串
/一个数除以另一个数
//取整除返回商的整数部分,如:9 // 2 = 4
%取余返回除法的余数
**指数a**b:a 的 b 次方

下面演示表格中加粗的部分:

print("tom"*3)
print(11/2)
print(11//2)
print(2**3)

输出结果:

tomtomtom
5.5
5
8

9.2 赋值运算符

标准赋值运算符
在这里插入图片描述

复合赋值运算符
在这里插入图片描述

10. 字符串

10.1 字符串定义方式

字符串定义方式:

  • 单引号定义法

  • 双引号定义法

  • 三引号定义法:与多行注释的写法一样,同样支持换行。
    若使用变量接收,它就是字符串;
    若不使用变量接收,它就是多行注释。

    str1 = 'hello'
    print(type(str1))
    
    str2 = "hello"
    print(type(str2))
    
    str3 = """
    hello
    world
    """
    print(type(str3))
    

question: 当字符串包含单引号双引号时,该如何定义?

answer:

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

【例】

str1 = '"hello"'
print(str1)
str2 = "'hello'"
print(str2)
str3 = "\"hello\""
print(str3)
str4 = '\'hello\''
print(str4)   

输出结果:

"hello"
'hello'
"hello"
'hello'

10.2 字符串拼接

(1)字符串字面量之间

print("hello"+"world")   

输出结果:

helloworld

(2)字符串字面量字符串变量:

name = "Smith"             
print("我是"+name+", 我是一名学生")

输出结果:

我是Smith, 我是一名学生

(3)变量和变量之间:

name = "Smith"  
job = "医生"      
print(name+job) 

输出结果:

Smith医生

(4)“+” 只能用于字符串间的拼接,不能让字符串与其他类型拼接

name = "Smith"       
phone = 10086        
print(name+phone)    

在这里插入图片描述

10.3 字符串格式化方法 1

通过上节发现:
(1)变量过多时,拼接起来太麻烦;
(2)字符串无法与数字等其它类型完成拼接。

question: 有没有其它方式,即方便支持拼接其它类型呢?
answer: 字符串格式化

字符串之间的拼接:

name = "Smith"
msg = "我是 %s" % name
print(msg) #我是Smith

字符串与其他数据类型的拼接:

age = 30
salary = 10000
msg = "tom今年%s岁,月薪%s元" % (age, salary)
print(msg) #tom今年30岁,月薪10000元

【注】
(1)%s:%表示占位,s表示将变量变成字符串放入占位的地方(如上面代码中,age 和 salary 都是先变成字符串,再填入占位的地方)。
(2)多个变量占位时,变量要用括号括起来,并按照占位顺序填入。
(3)在上面代码中,其他数据类型要先被转成字符串,再到占位处拼接。其实也可以让它们以其原本类型拼接进去。
Python 支持非常多的数据类型占位,最常用的是如下三类:

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

【例】

name = "tom"
age = 30
salary = 10000.3
msg = "%s今年%d岁,月薪%f元" % (name, age, salary)
print(msg)

输出结果:

tom今年30岁,月薪10000.300000

10.4 字符串格式化的精度控制

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

  • m:控制宽度,要求是数字,设置的宽度小于数字自身时不生效(相当于没写)。
  • n:控制小数点精度,要求是数字,会进行小数的四舍五入。

【例1】%5d:表示将整数的宽度控制在 5 位,如数字11,被设置为 5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度。
【例2】%5.2f:表示将宽度控制为 5,将小数点精度设置为 2,
小数点和小数部分也算入宽度计算。如:对 11.345 设置了 %7.2f 后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制 2 位精度后,四舍五入为 .35。
【例3】%.2f:表示不限制宽度,只设置小数点精度为 2,如 11.345 设置 %.2f 后,结果是11.35。
【例4】

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)     

输出结果:

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

10.5 字符串格式化方法 2

  目前通过%符号占位已经很方便了,还能进行精度控制。可是追求效率和优雅的Python,是否有更加优雅的方式解决问题呢?当然有!

语法f"内容{变量}"
特点:不关心类型,不做精度控制,原样输出。适合对精度没有要求的时候快速格式化。

【例】

name = "jack"
age = 30
job = "教师"
info = f"{name}今年{age}岁,是一名{job}"
print(info)

输出结果:

jack今年30岁,是一名教师

10.6 表达式格式化

前面的格式化都是基于变量的。
可是,为了简化代码,直接对 “表达式” 进行格式化是否可行呢?

表达式:一条具有明确执行结果的代码语句,如:1+1、5*2,就是表达式,它们有具体的结果,结果是一个数字。

在无需存储表达式结果的时候,可以直接格式化表达式,来简化代码。

【例】

print("1*1的结果是:%d"%(1*1))
print(f"1*1的结果是:{1*1}")
print("字符串在Python中的类型是:%s"%type('字符串'))   

输出结果:

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

【例】有如下变量:
   name 公司名
   stock_price 当前股价
   stock_code 股票代码
   stock_price_daily_growth_factor 股票每日增长系数 float 类型
   growth_days 增长天数
 计算:经过 growth_days 天的增长后,股价达到了多少钱。
 示例输出:
在这里插入图片描述

name = "传智播客"
stock_price = 19.99
stock_code = "003032"
stock_price_daily_growth_factor = 1.2
growth_days = 7
print(f"公司:{name},股票代码:{stock_code},当前股价:{stock_price}")
print("每日增长系数是:%.1f,经过%d天的增长后,股价达到了:%.2f" %
      (stock_price_daily_growth_factor, growth_days,
       stock_price * stock_price_daily_growth_factor ** growth_days))

11. 数据输入(input 语句)

前面介绍的 print 语句,可以将内容(字面量、变量等)输出到屏幕上。
与之对应的是 input 语句,用来获取键盘输入。

input() 用法
(1) input() 语句可以获取键盘输入;
(2) 使用变量接收其返回值即可获取键盘输入数据;
(3) 可在 input() 中直接写入提示信息,也可以没有提示信息。

name = input("请告诉我你的名字:") 
print("我知道了,你是%s" % name)

输出结果:

请告诉我你的名字:jack
我知道了,你是jack

input() 使用细节:
无论输入什么类型的数据,input() 返回的都是字符串,可以通过类型转换转成其他类型。

num = input("请告诉我你的年龄:")
print(type(num))
num = int(num)
print(type(num))

输出结果:

请告诉我你的年龄:18
<class 'str'>
<class 'int'>

【例】定义两个变量,用以获取从键盘输入的内容,并给出提示信息:
变量1,变量名:user_name,记录用户名称
变量2,变量名:user_type,记录用户类型
并通过格式化字符串的形式,通过print语句输出欢迎信息:您好,jack,您是尊贵的svip用户,欢迎您的光临

user_name = input("请输入用户名:")
user_type = input("请输入用户类型:")
print(f"您好,{user_name},您是尊贵的{user_type}用户,欢迎您的光临")

输出结果:

请输入用户名:jack
请输入用户类型:svip
您好,jack,您是尊贵的svip用户,欢迎您的光临           
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值