Python基础语法

Python基础语法

字面量

什么事字面量

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

Python中常见的六种值类型

类型 描述 说明
数字(Number) 支持:整数(int)、浮点数(float)、复数(complex)、布尔(bool) 整数(int):10 -10。浮点数(float):13.14 15.16。复数(complex):以j结尾表示为复数。布尔(bool):true为真,false为假
字符串(String) 描述文本的一种数据类型 字符串(string)由任意数量的字符组成
列表(List) 有序地可变序列 Python使用最频繁的序列,可有序记录一堆数据
元祖(Tuple) 有序的不可变序列 可有序记录一堆不可变的Python数据集合
集合(Set) 无序不重复集合 可无序记录一堆不重复的Python数据集合
字典(Dictionary) 无序键值集合 可无序记录一堆Key-Value型的Python数据集合
666
13.14
"哈哈哈"

print(666)
print(13.14)
print("哈哈哈")

结果
666
13.14
哈哈哈

注释

在程序代码中对代码进行解释说明的文字。注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。

单行注释

以 #开头,#右边 的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用。注意,#号和注释内容一般建议以一个空格隔开

多行注释

以 一对三个双引号 引起来 ("""注释内容""")来解释说明一段代码的作用使用方法

# 整数字面量
666
# 浮点数字面量
13.14
# 字符串字面量
"哈哈哈"

# 通过print语句输出各类字面量
print(666)
print(13.14)
print("哈哈哈")

结果
666
13.14
哈哈哈

变量

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

# 定义一个变量, 用来记录钱包余额
money = 50
# 通过print语句,输出变量记录的内容
print("钱包还有:", money)

# 买了一个冰激凌,花费十元
money = money - 10
print("买了冰激凌花费十元,还剩:", money)

# 假设每小时输出一下钱包的余额
print("现在下午一点钱包余额:", money)
print("现在下午二点钱包余额:", money)
print("现在下午三点钱包余额:", money)
print("现在下午四点钱包余额:", money)

结果
钱包还有: 50
买了冰激凌花费十元,还剩: 40
现在下午一点钱包余额: 40
现在下午二点钱包余额: 40
现在下午三点钱包余额: 40
现在下午四点钱包余额: 40

数据类型

我们可以通过type(变量)查看类型,这种方式查看到的是数据的类型

# 方式1: 使用print直接输出类型信息
print(type("哈哈哈"))
print(type(666))
print(type(13.14))

# 方式2: 使用变量存储type()语句的结果
string_type = type("哈哈哈")
int_type = type(666)
float_type = type(13.14)
print(string_type)
print(int_type)
print(float_type)

# 方式3: 使用type()语句,查看变量中存储的数据类型信息
name = "哈哈哈"
name_type = type(name)
print(name_type)

结果
<class 'str'>
<class 'int'>
<class 'float'>
<class 'str'>
<class 'int'>
<class 'float'>
<class 'str'>

数据类型转换

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

  • 从文件中读取的数字,默认是字符串,我们需要转换成数字类型
  • 后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
  • 将数字转换成字符串用以写出到外部系统
语句(函数) 说明
int(x) 将x转换为一个整数
float(x) 将x转换为一个浮点数
str(x) 将x转换为一个字符串
# 将数字类型转换成字符申
num_str = str(11)
print(type(num_str), num_str)

float_str = str(13.14)
print(type(float_str), float_str)

# 将字符申转换成数字
num = int("11")
print(type(num), num)

num1 = float("13.14")
print(type(num1), num1)

# 整数转浮点数
float_num = float(11)
print(type(float_num), float_num)

# 浮点转整数
int_num = int(13.34)
print(type(int_num), int_num)

结果
<class 'str'> 11
<class 'str'> 13.14
<class 'int'> 11
<class 'float'> 13.14
<class 'float'> 11.0
<class 'int'> 13

标识符

是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。
命名规则:

  • 内容限定
    • 英文
    • 中文
    • 数字
    • 下划线(_)
      其他任何内容都不允许。1不推荐使用中文; 2数字不可以开头
  • 大小写敏感
  • 不可使用关键字
# 规则1:内容限定,限定只能使用:中文、英文、数字、下划线,注意:不能以数字开头
# 错误的代码师范 1_name = "张三"
# 错误的代码师范 name_! = "哈哈"
name_ = "哈哈"
_name = "哈哈"
name_1 = "哈哈"

# 规则2:大小写敏感
Name = "哈哈";
name = "啧啧";
print(name)
print(Name)

# 规则3:不可使用关键字
# 错误的示例,使用了关键字 class = 1
# 错误的示例,使用了关键字 def = 1
Class = 1

结果
啧啧
哈哈

变量的命名规范

  • 见名知意
  • 下划线命名法
  • 英文字母全小写

运算符

算术运算符

运算符 描述 实例
+ 两个对象相加 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
# 算术(数学)运算符
print("1 + 1 = ", 1 + 1)
print("2 - 1 = ", 2 - 1)
print("3 * 3 = ", 3 * 3)
print("4 / 2 = ", 4 / 2)
print("11 // 2 = ", 11 // 2)
print("9 % 2 = ", 9 % 2)
print("2 ** 2 = ", 2 ** 2)

# 赋值运算符
num = 1 + 2 * 3
print(num)

# 符合运算符
num = 1
num += 1
print("num += 1:", num)
num -= 1
print("num -= 1:", num)
num *= 4
print("num *= 4:", num)
num /= 2
print("num /= 2:", num)
num = 3
num %= 2
print("num %= 2:", num)
num **= 2
print("num **= 2:", num)
num = 9
num //= 2
print("num //= 2:", num)

结果
1 + 1 =  2
2 - 1 =  1
3 * 3 =  9
4 / 2 =  2.0
11 // 2 =  5
9 % 2 =  1
2 ** 2 =  4
7
num += 1: 2
num -= 1: 1
num *= 4: 4
num /= 2: 2.0
num %= 2: 1
num **= 2: 1
num //= 2: 4

字符串三种定义方式

  • 单引号定义法:name = '哈哈'
  • 双引号定义法:name = "哈哈"
  • 三引号定义法:name = """哈哈哈"""

三引号定义法,和多行注释的写法一样,同样支持换行操作。使用变量接收它,它就是字符串不使用变量接收它,就可以作为多行注释使用。

# 单引号定义法,使用单引号进行包围
name = '哈哈'
print(type(name))

# 双引号定义法
name = "哈哈"
print(type(name))

# 三引号定义法, 写法和多行注释一样支持换行
name = """哈哈
嘿哈"""
print(type(name), name)

# 在字符串 包含双引号
name = '"哈哈"'
print(name)
# 在字符串 包含单引号
name = "'哈哈'"
print(name)
# 使用转义字符\解除引号的效用
name = "\"哈哈哈\""
print(name)
name = '\'哈哈哈\''
print(name)

结果
<class 'str'>
<class 'str'>
<class 'str'> 哈哈
嘿哈
"哈哈"
'哈哈'
"哈哈哈"
'哈哈哈'

字符串的拼接

字符串只能和字符串拼接,不可以和非字符串拼接

# 字符串字面量之间的拼接
print("哈哈" + "牛B")

# 字符串字面量和字符串变量的拼接
name = "哈哈"
age = "18"
print("名称:" + name + ",年龄:" + age)

结果
哈哈牛B
名称:哈哈,年龄:18

字符串格式化

常用的三种转义方式

格式符号 说明
%s 将内容转换成字符串,放入占位位置
%d 将内容转换成整数,放入占位位置
%f 将内容转换成浮点型,放入占位位置
# 通过占位的形式,完成拼接
name = "哈哈哈"
message = "我的名字叫:%s" % name
print(message)

# 通过占位的形式完成数字和字符串的拼接
name = "嘿哈"
age = "18"
print("我的名字叫:%s, 年龄:%s" % (name, age))

结果
我的名字叫:哈哈哈
我的名字叫:嘿哈, 年龄:18

字符串格式化的经度控制

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

  • m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
  • .n,控制小数点精度,要求是数字,会进行小数的四舍五入

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

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,结果是:00011
数字11宽度限制1,结果是:11
数字11.345宽度限制7,小数精度2,结果是:  11.35
数字11.345宽度不限制,小数精度2,结果是:11.35

字符串格式化 - 快捷写法

f"{变量} {变量}"的方式进行快速格式化

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

演示第二种宇符申格式化的方式: f"{占位}"
"""

name = "哈哈"
set_up_year = 2006
stock_price = 19.99
# f:format
print(f"我是{name},我成立于{set_up_year},我今天的股价为:{stock_price}")

结果
我是哈哈,我成立于2006,我今天的股价为:19.99

表达式的格式化

表达式就是一个具有明确结果的代码语句,格式化表达式:

  • f"{表达式}"
  • "%s\%d\%f" % (表达式、表达式、表达式)
print("1 * 1 的结果是:%d" % (1 * 1))
print(f"1 * 2 的结果是:{1 * 2}")
print("字符串Python中的类型名是:%s" % type("字符串"))

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

字符串格式化练习题

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))

结果
公司:哈哈哈,代码003032,股价:19.99
每日增长系数:1.2,经过7天后的增长后,股价达到了:71.63

数据输入

input()语句的功能是,获取键盘输入的数据,可以使用:input(提示信息),用以在使用者输入内容之前显示提示信息,无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型

name = input("请告诉我你是谁?\n")
print(f"你是:{name}")

# 输入数字类型
num = input("请告诉我你的银行卡密码:\n")
# 数据转换
num = int(num)
print(f"你的银行卡密码类型是:{type(num)}")

结果
请告诉我你是谁?
哈哈
你是:哈哈
请告诉我你的银行卡密码:
123123
你的银行卡密码类型是:<class 'int'>
posted @ 2023-09-06 10:44  橙香五花肉  阅读(10)  评论(0编辑  收藏  举报