python 基础语法
一. 基础数据类型
常用的 6 种数据类型
类型 | 描述 | 说明 |
---|---|---|
数字(Number ) | int,float,complex(复数),bool | 复数:4 + 3j ,j 表示复数 |
字符串(String ) | 文本:单引号,双引号,三引号 | 'aaa', "aaa", """aaa""" |
列表(List ) | 有序的可变列表 | 可有序记录一堆数据 |
元组(Tuple ) | 有序不可变列表 | 记录不可变的数据集合 |
集合(Set ) | 无序,不重复集合 | 存放无需,且不允许重复 |
字典(Dictionary ) | 无序 Key-value 结构 | 通过 k-v 的形式记录 |
二、注释
单行注释
# 我是单行注释
print('hello world!)
多行注释
"""
我是多行注释
out 函数主要是向控制台输出 hello world 字符串
"""
def out():print('hello world!')
三、变量
变量: 变量是在程序运行时,存储计算的值或者是表示值的抽象概念
变量本身是没有类型的,但是变量存储的数据是有类型的
"""变量演示
"""money = 50
print(f'钱包剩余:{money}元')# 购买冰淇淋花费 10 元
money = money - 10
print(f'钱包剩余:{money}元')# 花费 2 元购买彩票
money -= 2
print(f'钱包剩余:{money}元')
# 购买彩票中间 300 元
money += 300
print(f'钱包剩余:{money}元')"""
钱包剩余:50元
钱包剩余:40元
钱包剩余:38元
钱包剩余:338元
"""
type函数
"""
数据类型
"""# python type() 函数的用法
str_ = "python1"
str_2 = 'python2'
int_ = 1
float_ = 1.1def func1():print('im func1...')print(f'[{str_}]的类型是:', type(str_))
print(f'[{str_2}]的类型是:', type(str_2))
print(f'[{int_}]的类型是:', type(int_))
print(f'[{float_}]的类型是:', type(float_))
print(f'[func1]的类型是:', type(func1))"""
[python1]的类型是: <class 'str'>
[python2]的类型是: <class 'str'>
[1]的类型是: <class 'int'>
[1.1]的类型是: <class 'float'>
[func1]的类型是: <class 'function'>
"""
四、数据类型的转换
数据类型: int
, float
, str
三种数据类型的转换
语法 | 解释 |
---|---|
int(x) | 将 x 变量转换成 int 类型 |
float(x) | 将 x 变量转换成 float 类型 |
str(x) | 将 x 变量转换成 str 类型 |
"""
数据类型的转换:
int(x)
float(x)
str(x)
"""print('-----------------定义变量---------------------')
# 定义 int float str 变量
int_num = 1
print(f'{int_num} 的类型是:', type(int_num))
float_num = 20.23
print(f'{float_num} 的类型是:', type(float_num))
str_num = '100'
print(f'{str_num} 的类型是:', type(str_num))print('-----------------转换类型---------------------')# 将 int 转 str
int_num_str = str(int_num)
print(f'将int转str -> {int_num_str} 的类型是:', type(int_num_str))
# 将 int 转 float
float_int_num = float(int_num)
print(f'将int转float -> {float_int_num} 的类型是:', type(float_int_num))# 将 float 转 str
float_num_str = str(float_num)
print(f'将float转str -> {float_num_str} 的类型是:', type(float_num_str))
# 将 float 转 int
int_float_num = int(float_num)
print(f'将float转int -> {int_float_num} 的类型是:', type(int_float_num))# 将 str 转 int
int_str_num = int(str_num)
print(f'将str转int -> {int_str_num} 的类型是:', type(int_str_num))
# 将 str 转 float
float_str_num = int(str_num)
print(f'将str转float -> {float_str_num} 的类型是:', type(float_str_num))"""
-----------------定义变量---------------------
1 的类型是: <class 'int'>
20.23 的类型是: <class 'float'>
100 的类型是: <class 'str'>
-----------------转换类型---------------------
将int转str -> 1 的类型是: <class 'str'>
将int转float -> 1.0 的类型是: <class 'float'>
将float转str -> 20.23 的类型是: <class 'str'>
将float转int -> 20 的类型是: <class 'int'>
将str转int -> 100 的类型是: <class 'int'>
将str转float -> 100 的类型是: <class 'int'>
"""
五、 标识符
-
内容限制(只允许使用一下的内容)
- 英文
- 中文 (
不推荐
) - 数字(
数字不可用于开头
) - 下划线
-
大小写敏感
Andy = 'Andy' andy = 'andy' # 以上两个变量是能够被区分的,所有大小写是敏感的
-
不可使用关键字
False True None and as assert break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while whith yield
"""
正确的标识符定义
"""# 规则1:关键字定义方式
name = '张三'
_name = '张三'
name_ = '张三'
name_1 = '张三'# 规则2: 大小写敏感
Name = '李四'
print(name)
print(Name)# 规则3: 不可使用关键字,
def = '张三' # 错误
六、运算符
算数运算符
算数运算符 | 说明 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
// | 取整除 |
% | 取余 |
** | 指数(次方) |
"""
运算符演示
"""print(f'1 + 1 = {1 + 1}')
print(f'1 - 1 = {1 - 1}')
print(f'2 * 2 = {2 * 2}')
print(f'8 / 2 = {8 / 2}') # 4.0
print(f'8 // 2 = {8 // 2}') # 4
print(f'8 % 3 = {8 % 3}')
print(f'8 % 3 = {8 % 3}')
print(f'2 ** 3 = {2 ** 3}') # 2^3=8"""
1 + 1 = 2
1 - 1 = 0
2 * 2 = 4
8 / 2 = 4.0
8 // 2 = 4
8 % 3 = 2
8 % 3 = 2
2 ** 3 = 8
"""
复合赋值运算符
复合赋值运算符 | 说明 |
---|---|
+= | b += a 等效 b = b + a |
-= | b -= a 等效 b = b - a |
*= | b *= a 等效 b = b * a |
/= | b /= a 等效 b = b / a |
//= | b //= a 等效 b = b // a |
%= | b %= a 等效 b = b % a |
**= | b **= a 等效 b = b ** a |
a = 10a += 2
print(f'a += 2, a = ', a)a = 10 # 重新赋值 a 为 10
a -= 2
print(f'a -= 2, a = ', a)a = 10 # 重新赋值 a 为 10
a *= 2
print(f'a *= 2, a = ', a)a = 10 # 重新赋值 a 为 10
a /= 2
print(f'a /= 2, a = ', a)a = 10 # 重新赋值 a 为 10
a //= 2
print(f'a //= 2, a = ', a)a = 10 # 重新赋值 a 为 10
a %= 3
print(f'a %= 3, a = ', a)a = 10 # 重新赋值 a 为 10
a **= 2
print(f'a **= 3, a = ', a)"""
a += 2, a = 12
a -= 2, a = 8
a *= 2, a = 20
a /= 2, a = 5.0
a //= 2, a = 5
a %= 3, a = 1
a **= 3, a = 100
"""
七、字符串
7.1 字符串的三种第一方式
# 字符串的三种定义方式
name_1 = '张三' # 单引号
name_2 = "张三" # 双引号
name_3 = """张三""" # 三引号print(name_1, name_2, name_3)# 字符串本身包含特殊符号比如: ' " \ 等
str_1 = '"我爱python"'
print(str_1)
str_2 = "'我爱python'"
print(str_2)
str_3 = "我爱\"python"
print(str_3)"""
张三 张三 张三
"我爱python"
'我爱python'
我爱"python
"""
7.2 字符串拼接
# 字符串拼接
title = '学习 python'
str_ = title + ", 能够完成编写python代码"
print(str_) # 学习 python, 能够完成编写python代码# 字符串不能直接和数字进行拼接
phone = 456
str_ += phone
print(str_) # TypeError: can only concatenate str (not "int") to str
7.3 字符串格式化
# 这种方式很难受,要写很多 + 号,可以通过格式化方式完成
print('我的名字是:' + name + ",我的职业的是:" + occupation + ",我住在:" + address + ", 我的年龄是:" + age)# 方式1:格式化,在字符串前面加上 f
print(f'我的名字是:{name},我的职业的是:{occupation},我住在:{address}, 我的年龄是:{age}')# 方式2:通过 format 函数
print('我的名字是:{0},我的职业的是:{1},我住在:{2}, 我的年龄是:{3}'.format(name, occupation, address, age))# 方式3:通过 %s 占位符,使用 % 连接,多个占位符替换使用 %() 涵盖,并支持数字类型的占位
print('我的名字是:%s,我的职业的是:%s,我住在:%s, 我的年龄是:%s' % (name, occupation, address, age))
# 占位符 %s(字符) %d(数字) %f(浮点数) -> %.2f 表示小数点后保留2位
print('我今年%d岁,工作%.2f年,住址:%s' % (25, 4.566, '北京'))"""
我的名字是:刘海柱,我的职业的是:法师,我住在:新疆乌鲁木齐, 我的年龄是:30
我的名字是:刘海柱,我的职业的是:法师,我住在:新疆乌鲁木齐, 我的年龄是:30
我的名字是:刘海柱,我的职业的是:法师,我住在:新疆乌鲁木齐, 我的年龄是:30
我的名字是:刘海柱,我的职业的是:法师,我住在:新疆乌鲁木齐, 我的年龄是:30
我今年25岁,工作4.57年,住址:北京
"""
7.4 练习题
name = '阿里巴巴' # 公司名字
stock_price = 19.99 # 公司股价
stock_code = '0233333' # 公司股票代码
daily_growth_factor = 1.2 # 股票增长指数
growth_days = 7 # 增长天数# 计算经过增长天数后,股票价格达到多少
# 使用字符串格式化后输出,如果是浮点数,要求小数点精确到2位
# 实例:
"""
公司: 阿里巴巴,股票代码:0233333,当前股价:19.99 -> 本行要求使用:f{变量}
每日增长系数是:1.2,经过 7 天后,股票价格达到:xxx -> 本行要求使用:% 占位符
"""growth_price = stock_price * daily_growth_factor ** growth_days
line_1 = f'公司: {name},股票代码:{stock_code},当前股价:{stock_price}'
line_2 = '每日增长系数是:%.1f,经过 %d 天后,股票价格达到:%.2f' % (daily_growth_factor, growth_days, growth_price)print(line_1)
print(line_2)
7.5 OS 键盘输入
"""
读取 os 键盘输入
"""name = input("你是谁:")
print(f"你好:{name}")"""
你是谁: zhangsan
你好:zhangsan
"""