Python基础语法
一.字面量
代码中被写下来的固定的值
Python中常用的有6种值(数据)的类型:
- 目前仅需了解如下三种
(1)整数
类似于数学上的整数,例如 10 , -10
print(10) # 输出 10
(1) 浮点数
类似于数学上的小数,例如 13.14 , 5.21
print(13.14) # 输出 13.14
(2) 字符串
定义: 字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串。
- "观止blog"
- "!@#$%^&"
注:需要用 双引号" " 或者 单引号' ' 或者 三引号""" """ 包围起来。
print("观止blog") # 输出 观止blog print('观止blog') # 输出 观止blog print("""观止blog""") # 输出 观止blog
二.注释
定义:在程序代码中对程序代码进行解释说明的文字。
作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用。
- 单行注释:以 #开头,#右边 的所有文字当作说明,起辅助说明作用。#号和注释内容一般建议以一个空格隔开.
- 多行注释: 以 一对三个双引号 引起来 (""" """)来解释说明一段代码的作用使用方法
# 我是单行注释 """ 我是 多行注释 """
注:三引号即能用做 多行注释 又能用做 字符串定义
三.变量
在程序运行时,能储存计算结果或能表示值的抽象概念 (记录数据)
(1) 变量的定义格式
""" 变量名 = 变量值 变量名 :每个变量自己的名称,即变量本身 = :表示将等号右侧的值,赋予左侧的变量 变量值 :每个变量储存的值(内容) """ name = "观止" # 示例
(2) 变量的赋值
""" - 每个变量可以重复赋值 - 每次赋值将覆盖原有值 """ name = "观止" print(name) # 输出 观止 name = "study" print(name) # 输出 study
四.数据类型查看
变量无类型而数据有类型
- 可使用 type(变量) 查看数据的类型
# 1.使用print直接输出类型信息 print(type(13.14)) # 输出 <class 'float'> # 2.使用变量存储type()语句的结果(调用type()有返回值) int_type = type(521) print(int_type) # 输出 <class 'int'> # 3.查看变量中存储的数据类型 name = "观止" print(type(name)) # 输出 <class 'str'> str为string简写
五.数据类型转换
在特定的场景下,数据类型之间是可以相互转换的
(1) 转为整数
- 使用 int(x) ,将x转换为一个整数
# 字符串转为整数 num = "666" print(int(num)) # 输出 666 print("初始值类型:", type(num), ",转换后类型:", type(int(num))) # 输出 初始值类型: <class 'str'> ,转换后类型: <class 'int'> # 将浮点数转为小数 # 会导致精度丢失,即小数点后面的部分 print(int(13.14)) # 输出 13
(2) 转为浮点数
- 使用 float(x) ,将x转换为一个浮点数
# 字符串转浮点数 num = "5.21" print(float(num)) # 输出 5.21 print("初始值类型:", type(num), ",转换后类型:", type(float(num))) # 输出 初始值类型: <class 'str'> ,转换后类型: <class 'float'> # 整数转浮点数 # 进行补.0 print(float(5)) # 输出 5.0
(3) 转为字符串
- 使用 str(x) ,将x转换为一个字符串
num = 13.14 print(str(num)) # 输出 13.14 print("初始值类型:", type(num), ",转换后类型:", type(str(num))) # 输出 初始值类型: <class 'float'> ,转换后类型: <class 'str'>
(4) 小结
- 同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值),可以用print直接输出或用变量存储结果值输出。
- 任何类型,都可以通过str(),转换成字符串。
- 字符串内必须真的是数字,才可以将字符串转换为数字,否则会报错。
六.标识符
用户在编程的时候所使用的一系列用于给变量、类、方法等命名的名字
(1) 命名规则
1. 内容限制
标识符命名中,只允许出现这四类元素,其余任何内容都不被允许。
- 英文
- 中文 (不推荐使用)
- 数字 (不可以作为开头)
- 下划线(_)
√ a × 1 √ a_b × 1_ √ _a × 1_a √ _a_b × &a √ a2 × )a √ a_b_2 × !a
2. 大小写敏感
字母a的大写和小写,是完全能够区分的。
guan = "study1" Guan = "study2" print(guan) # 输出 study1 print(Guan) # 输出 study2
3. 不可使用关键字
在Python内部有特定用途,不可以使用它们作为标识符(不需要记,误用时编译器会报错)
(2) 命名规范
1. 变量的命名规范
- 见名知意(尽量做到,看到名字,就知道是什么意思)
name = "观止"
- 下划线命名法(多个单词组合变量名,要使用下划线做分隔)
student_name = "观止"
- 英文字母全小写(竟然不推荐使用驼峰)
√ name = "观止" × Name = "观止"
(3) 小结
- 不遵守规则:会出现问题
- 不遵守规范:不太高级
七.运算符
(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 |
print("加:", 1 + 1) # 输出 加:2 print("减:", 10 - 1) # 输出 减:9 print("乘:", 2 * 5) # 输出 乘:10 print("除:", 5 / 4) # 输出 除:1.25 print("整数除:", 5 // 4) # 输出 整数除:1 print("取余:", 5 % 4) # 输出 取余:1 print("指数:", 2 ** 3) # 输出 指数:8
(2) 赋值运算符
运算符 |
描述 |
实例 |
= |
赋值运算符 |
把 = 号右边的结果 赋给 左边的变量,如 num = 1 + 2 * 3,结果num的值为7 |
(3) 复合运算符
+= |
加法赋值运算符 |
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 |
num = 2 num += 1 # 等效于 num = num + 1 print(num) # 输出 3
八.字符串扩展知识
(1) 三种定义方式
单引号定义法:name = '观止blog' 双引号定义法:name = "观止blog" 三引号定义法:name = """观止blog"""
(2) 字符串引号嵌套
如果想要定义的字符串本身是包含单引号、双引号可通过
- 单引号定义法,可以内含双引号
name = '观"study"止' print(name) # 输出 观"study"止
- 双引号定义法,可以内含单引号
name = "观'study'止" print(name) # 输出 观'study'止
- 可以使用转移字符(\)来将引号解除效用,变成普通字符串
name = '观\'study\'止' print(name) # 输出 观'study'止
(3) 字符串的拼接
- 可以将两个字符串通过+号将其拼接成一个字符串 或者 将字面量和变量或变量和变量之间进行使用拼接
print("观止" + "study") # 输出 观止study name = "study" print("观止" + name) # 输出 观止study
- 缺点:
- 字符串无法和非字符串变量进行拼接因为类型不一致,无法接上
- 变量过多,拼接起来实在是太麻烦了
- 字符串无法和数字或其它类型完成拼接。
(4) 字符串格式化v1
完成字符串和变量的快速拼接
- % 右边变量的值替换 %s ("%占位符" % 变量)
name = "study" message = "观止 %s" % name print(message) # 输出 观止 study - % 表示:我要占位 - s 表示:将变量变成字符串放入占位的地方
- 多个变量占位变量要用括号括起来并按照占位的顺序填入
hobby = "study" name = "观止" message = "爱好 %s ,姓名 %s" % (hobby, name) print(message) # 输出 爱好 study ,姓名 19
- 可以完成字符串、整数、浮点数,三种不同类型变量的占位
格式符号 |
转化 |
%s |
将内容转换成字符串,放入占位位置 |
%d |
将内容转换成整数,放入占位位置 |
%f |
将内容转换成浮点型,放入占位位置 |
name = "study" age = 19 money = 1.00 message = "姓名:%s,年龄:%d,家当:%f" % (name, age, money) print(message) # 输出 姓名:study,年龄:19,家当:1.000000
(5) 格式化的精度控制
- 我们可以使用辅助符号"m.n"来控制数据的宽度和精度
- m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
- .n,控制小数点精度,要求是数字,会进行小数的四舍五入
age = 18 # %5d 表示将整数的宽度控制在5位,用三个空格补足宽度 money = 1.00 # %.2f 将小数点精度设置为2位 message = "观止%5d,身价:%.2f" % (age, money) print(message) # 输出 观止 18,身价:1.00
(6) 字符串格式化v2(优雅)
- 通过语法:f"内容{变量}"的格式来快速格式化
age = 18 money = 1.00 message = f"观止:{age},身价:{money}" print(message) # 输出 观止:18,身价:1.0
- 适用于快速格式化字符串,缺点:
- 无法做做精度控制
- 不理会数据类型
(7) 对表达式进行格式化
表达式:一条具有明确执行结果的代码语句
- 1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字
- name = “张三” age = 11 + 11
- 上式等号右侧的都是表达式,因为它们有具体的结果,结果赋值给了等号左侧的变量。
- 在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码
print(f"观止:{2022 - 2003}") # 输出 观止:18 print("观止:%d" % (2022 - 2003)) # 输出 观止:18
九.数据输入
使用input()语句可以从键盘获取输入
- 数据输出:print :可以完成将内容(字面量、变量等)输出到屏幕上。
- 数据输入:input :可以用来获取键盘输入
name = input() # 输入 观止 用name变量来接收输入的数值 print(name) # 输出name储存的数值 观止
- 可在input()中输入提示信息,将打印在控制台
name = input(”tell me your name?“) # 会在控制台打印tell me your name? 然后可输入 观止 print(name) # 输出name储存的数值 观止
- 输入的数值都将转为字符串类型,可通过数据类型转换获取需要的数据类型
name = input() # 输入 5 print(type(name)) # 输出 <class 'str'> print(type(int(name))) # 输出 <class 'int'>