文章目录
Python学习笔记——第一章 Python基础语法
1.1 字面量
1.1.1 含义
在代码中,被写下来的固定的值,称之为字面量.
1.1.2 常见字面量类型
Python中常见的有6种值(数据)的类型
类型 | 描述 | 说明 |
---|---|---|
数字(Number) | 支持 整数(int) 浮点数(float) 复数(complex) 布尔(bool) |
整数(int),如:10,-10 浮点数(float),如:13.14,-13.14 复数(complex),如:4+3j,以j结尾表示复数 布尔(bool)表达现实中的逻辑(真或者假),真用True表示,假用False表示,True和False本质上是数字1和0 |
字符串(String) | 描述文本的一种数据类型 | 字符串(string)由任意的字符组成,如“112233”,”你好”,”abc$#%#@”等等 |
列表(List) | 有序的可变序列 | Python中使用最频繁的数据类型,可有序记录一堆数据 |
元组(Tuple) | 有序的不可变序列 | 可有序记录一堆不可变的Python数据集合 |
集合(Set) | 无序不重复集合 | 可无序记录一堆不重复的Python数据集合 |
字典(Dictionary) | 无序key-value集合 | 可有序记录一堆key-value型的Python数据集合. |
1.1.3 基于print语句
的各类字面量输出
源代码:
# 输出整型
print(520)
# 输出浮点型
print(13.14)
# 输出字符串
print("你好")
输出:
520
13.14
你好
Press any key to continue . . .
1.2 变量
1.2.1 什么是变量
在程序运行时,能==储存计算结果=或能表示值的抽象概念.=
简单来说,变量就是在程序运行时记录数据用.
变量的值是可以改变的.
1.2.2 变量定义格式
变量名称 = 变量的值
举例:
# 定义一个字符串变量和浮点型变量
food = "苹果"
price = 3.5
1.2.3 使用举例
# 定义一个字符串变量和整型变量
food = "苹果"
price = 3.5
# print语句输出
print(food, "的价格是:", price)
# 若苹果打8折
price *= 0.8
print(food, "的价格是:", price)
输出结果:
苹果 的价格是: 3.5
苹果 的价格是: 2.8000000000000003
1.3 数据类型
数据类型 | 描述 | 举例 |
---|---|---|
整型(int) | 正负整数,0等等都属于整型 | 1 , -1 , 0b1010(二进制) |
浮点型(float) | 正负小数 | 3.14 , -3.14 , 3.14e5(科学计数法) |
布尔型(bool) | 逻辑真值(True)和假值(False) | True , False |
复数(complex) | 用实数加虚数表示,只要包含虚数,就是复数 | 3-9j , 5+9j |
字符串(str) | 用单,双,三引号引起来的内容就是字符串 | ‘1’ , “2” , “”“3”“” |
列表(list) | 有序储存数据 | [1, 2.55, “1233”] |
元组(tuple) | 有序储存不可变元素 | (1, 2.55, “1233”) |
集合(set) | 无需储存不重复元素 | {1, 2.55, “1233”} |
字典(dict) | 储存一对键值对 | {“姓名”:”一木折曦” ,”性别”:”男” } |
使用举例
1.3.1 整型(int)
# 普通整型
intv = 12
print(intv, type(intv))
intv = -13
print(intv, type(intv))
# 二进制
intv = 0b0110
print(intv, type(intv))
输出结果
12 <class 'int'>
-13 <class 'int'>
6 <class 'int'>
1.3.2 浮点型(float)
# 普通浮点型
floatv = 3.14
print(floatv, type(floatv))
# 科学计数法
floatv = 3.14e5
print(floatv, type(floatv))
输出结果
3.14 <class 'float'>
314000.0 <class 'float'>
1.3.3 布尔型(bool)
# 布尔变量
boolv = True
print(boolv, type(boolv))
输出结果
True <class 'bool'>
1.3.4 复数(complex)
# 复数
complexv = 16-5j
print(complexv, type(complexv))
complexv = complex(2, 5j)
print(complexv, type(complexv))
输出结果
(16-5j) <class 'complex'>
(-3+0j) <class 'complex'>
1.3.5 字符串(str)
1.3.5.1 字符串的三种定义方式
# 方法一
变量名 = '内容'
# 方法二
变量名 = "内容"
# 方法三
变量名 = """内容"""
举例:
str1 = '123'
str2 = "沐"
str3 = """
这里是\t字符串\n嗯,是字符串
"""
str4 = r"这里\t是无法使用转义字符的字符串" # 元字符串
print(str1, type(str1))
print(str2, type(str2))
print(str3, type(str3))
print(str4, type(str4))
输出结果
123 <class 'str'>
沐 <class 'str'>
这里是 字符串
嗯,是字符串
<class 'str'>
这里\t是无法使用转义字符的字符串 <class 'str'>
1.3.5.2 字符串的拼接
在编程时,有时会需要将多个字符串拼接成一个字符串使用,这时只需要在中间添加+
运算符即可.
语法
结果字符串 = 字符串1 + 字符串2
示例
strv1 = '520'
strv2 = '1314'
strv3 = strv1 + strv2
print(strv3, type(strv3))
输出结果
5201314 <class 'str'>
字符串也可以与其他类型拼接,但首先需要将其转换为字符串.
举例
strv1 = '520'
strv2 = '1314'
strv3 = strv1 + strv2
intv = 7
print(strv3+str(intv))
输出结果
52013147
1.3.5.4 字符串格式化
格式化方法一
但是实际使用中,可能会觉得每次要将其他的类型变量转换成字符串再拼接显得十分复杂繁琐,这是我们可以用占位符进行格式化,然后拼接.
语法:
目标字符串 = "类容%s内容%i内容%f..." % (占位数据1,占位数据2,占位数据3...(也可以写表达式))
举例:
'''
占位符
%s 将后续补入内容转化为str类型拼接
%i(%d) 将后续内容转换为int类型拼接
%f 将后续内容转化为float类型拼接
'''
name = "沐"
age = 19
sex = "男"
msg = "我的名字是%s,年龄%i,性别%s" % (name, age, sex)
print(msg, type(msg))
输出结果:
我的名字是沐,年龄19,性别男 <class 'str'>
字符串格式化-精度控制
在使用字符串时,我们有时会遇到一些特殊需求,如精确到小数点后x位,或者每一个填入内容至少要占用几个空格以保证文本美观.精度控制的占位符非常简单,只需要在%
和字母之间加上两个数字m,n
,其中,m
代表宽度即最小输出宽度,余位用空格补齐,.n
代表精度.其中,m
可以省略不写.
使用举例:
name = "沐"
age = 19
sex = "男"
msg = "我的名字是%7s,年龄%8.4f,性别%4s" % (name, age, sex)
print(msg, type(msg))
输出结果:
我的名字是 沐,年龄 19.0000,性别 男 <class 'str'>
明显的看见,沐占用了7格,年龄精确到了小数点后四位且占位8格,男占位4格.
格式化方法二
语法:
字符串变量 = f"部分元素{
部分其他元素}"
#中括号内也可以写表达式
使用举例:
msg = f"我的名字是{
name},年龄{
age},性别{
sex}"
print(msg, type(msg))
输出结果:
我的名字是沐,年龄19,性别男 <class 'str'>
1.3.6 列表(list)
# 列表
listv = [] # 空列表
listv.append(12)
listv.append(11)
print("列表的第0个元素是", listv[0])
print("列表的第一个元素是", listv[1])
print("列表", listv, type(listv))
输出结果
列表的第0个元素是 12
列表的第一个元素是 11
列表 [12, 11] <class 'list'>
1.3.7 元组(tuple)
# 元组
tuplev = (18, "520", 13+14j)
print(tuplev[1])
print(tuplev[-1])
print(tuplev, type(tuplev))
"""
元组不支持赋值与修改
"""
输出结果
520
(13+14j)
(18, '520', (13+14j)) <class 'tuple'>
1.3.8 集合(set)
# 集合
setv = set() # 定义空集合
setv.add(123)
setv.add(456)
print(setv, type(setv))
setv.add(123) # 添加重复元
print(setv, type(setv))
"""
特点:无序,不可修改,自动去重
"""
输出结果
{456, 123} <class 'set'>
{456, 123} <class 'set'>
1.3.9 字典(dict)
# 字典
dictv = {
} # 定义空字典
dictv.update({
"姓名": "沐"}) # 添加一个键值对
dictv.update({
"年龄": "19"})
print(dictv["姓名"]) # 获取key对应的value
print(dictv["年龄"])
print(dictv, type(dictv))
输出结果
沐
19
{'姓名': '沐', '年龄': '19'} <class 'dict'>
1.4 类型转换
不同数据类型的变量往往可以相互转换以便于后续关于这些值的一些操作.但不正确的进行转换将会影响到整个程序的运行.
1.4.1 转换为整型
常见的数据类型中,字符串(str)
和浮点型(float)
可以转换为整型.
并不是所有字符串都可以转换为整型,转换的字符串必须只含有数字才可以进行转换.
语法
变量名 = int(需要转换的变量或变量名)
示例
strv = "12123" # 定义字符串
floatv = 13.14 # 定义浮点数
int1 = int(strv) # 强制转换为整型
print(int1, type(int1))
int2 = int(floatv)
print(int2, type(int2))
输出结果
12123 <class 'int'>
13 <class 'int'>
1.4.2 转换为浮点型
字符串(str)
和整型(int)
可以转换为浮点型.
语法
变量名 = float(需要转换的变量或变量名)
示例
strv = "13.14"
intv = 520
floatv = float(strv)
print(floatv, type(floatv))
floatv = float(intv)
print(floatv, type(floatv))
输出结果
13.14 <class 'float'>
520.0 <class 'float'>
1.4.3 转换为字符串
语法
变量名 = str(需要转换的变量或变量名)
示例
intv = 520
floatv = 13.14
strv = str(intv)
print(strv, type(strv))
strv = str(floatv)
print(strv, type(strv))
输出结果
520 <class 'str'>
13.14 <class 'str'>
1.5 标识符及几种常见命名方法
在代码中,许多变量函数等需要我们给他命名以方便使用,成这个名字为标识符
1.5.1 可包含字符
标识符可以包含数字
,字母
,汉字
(一般而言不建议用汉字命名),下划线(_)
,可以用这些字符进行任意组合,但是数字不能位于标识符最前面.
1.5.2 命名要求
- 要求简单易懂,见文知意,不建议过分冗杂增大书写难度或过分简约增大阅读难度.
- 不能与关键字(如
if
,print
等)相同. - 区分大小写.
1.5.3 下划线命名法
下划线命名法要求所有字母小写,单词与单词之间用_
隔开.
举例
people_name = "沐"
people_age = 19
1.5.4 小驼峰命名法
首字母小写,其余单词首字母大写.
举例
peopleName = "沐"
peopleAge = 19
1.5.5 大驼峰命名法
所有单词首字母均大写.
举例
def SetPeopleName()
1.6 运算符
1.6.1 算术(数学)运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 两个整型相加10 + 20 输出结果30 |
- | 减 | 两个数相减10 - 20 输出结果-10 |
* | 乘 | 两个数相乘或返回一个重复的字符串“12” * 3 输出结果“121212” |
/ | 除 | 两个数相除9 / 2 输出结果4.5 |
// | 取整除 | 返回商的整数部分9.0//2.0 输出结果4.0 |
% | 取模(取余) | 求余数9 % 2 输出结果1 |
** | 指数 | 2**3 输出结果8 ,3**2 输出结果9 |
1.6.2 赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | 将= 右边的值赋给左边,如num = 1 + 7 ,运行完这行代码后,num 的值为8 |
1.6.3 复合赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | a += b 等价于a = a + b |
-= | 减法赋值运算符 | a -= b 等价于a = a - b |
*= | 乘法赋值运算符 | a *= b 等价于a = a * b |
/= | 除法赋值运算符 | a /= b 等价于a = a / b |
%= | 取模赋值运算符 | a %= b 等价于a = a % b |
**= | 幂赋值运算符 | a **= b 等价于a = a ** b |
//= | 取整除赋值运算符 | a //= b 等价于a = a // b |
1.7 键盘数据输入(input)
input基础使用
语法:
s = input([prompt]) # prompt为输入提示,可选填写
注意:input接收到的输入默认为字符串类型,需要数字或其它类型需要进行类型转换。
使用举例:
name = input("name: ")
print(f"hello ,{
name}")
# 运行结果
# name: 泠曦
# hello ,泠曦
input多参数输入
在需要一次性输入多个参数时,可以直接在input
语句后添加split()
对输入的字符串进行拆分,在前面准备对应数量的变量名进行接收,举例:
a, b, c = input("请输入三角形三边的长:").split()
print(f"三角形三边长分别为{
int(a)},{
int(b)},{
int(c)}")
# 运行结果
# 请输入三角形三边的长:3 4 5
# 三角形三边长分别为3,4,5