02.Python基本语法(主体语法及规范+数据类型与转换+输入和输出+代码示例)

基本规范

语法主体

关键字:区分大小写,常用的关键词有:

逻辑运算关键字: and、or、not;运算布尔值:False、True,空值:None;

流程语句关键字:if、elif、else,for、in,while、break、continue;

函数和类相关关键字: class、def、return、pass(空语句块)

异常处理关键字: try、except、finally;

其他关键字: import、from、as、global、nonlocal、 with、assert、raise;

标识符:用于命名、区分、实体、引用和访问实体(类方法变量等)的作用,由数字、字母、下划线组成,不能数字开头,区分大小写

单行注释:与shell一样,每行用#开头;

多行注释:用三对英文双引号或单引号,引号最中间是注释内容( """多行""",或 '''注释''' )。

代码块:通常缩进和英文冒号 : 组合使用的方式表示代码块,每4个空格或者1个制表符(Tab)表示一个缩进级别。

语句:默认每条代码以换行符结尾(即一行一条代码),一行多条代码时用英文分号( ; )隔开;

错误异常:Python 的异常处理机制允许我们捕获并处理一般错误(非严重错误),而不会导致程序立即终止,会将错误信息输出后继续执行正常的部分(错误之前)。

"""
代码示例
"""
def my_function():
    # 方法代码块
    my_variable = 5
    if isinstance(my_variable, int):
        # 流程语句代码块
        print("my_variable是整数类型")
    else:
        print("my_variable不是整数类型")
'''
代码结束,输出结果:my_variable是整数类型
'''
命名规范

概述:以提高代码的可读性和可维护性为基本原则,避免使用Python的关键字作为标识符,使用一致而有意义的命名。

命名:使用大写字母开头的驼峰命名法(CamelCase)来命名类,通常应该是名词或名词短语,例如:MyClass, EmployeeRecord。

变量、函数、模块和包:使用小写单词,应具有描述性,能够清晰表达其功用或分类,多个单词用下划线_连接。除迭代计数外少用单字符。例如:my_variable, calculate_area。

常量命名:使用全大写字母和下划线来命名常量,例如:MAX_VALUE, PI。

私有成员命名:在私有变量、函数或方法名前加上单个下划线,表示它们是私有成员,只在模块内部使用,不对外公开。例如:_private_variable, _private_method。

数据与操作

数据类型

概述:在 Python 中没有如 Java 一般的基本数据类型,Python 中的数据类型都是以对象作为表达形式,都是对象。因为是对象,所以它们具有相应的方法和属性,可以进行操作和访问。但可以根据复杂程度不同和 Java 中的基本数据类型的理念分为基本型与复合型。也可以根据数据类型的可变性进行划分(即能否直接修改对象内容,或是需要新建一个对象记录需要修改的内容),怎么理解方便怎么记,以下是一种分类。

分类:数值型: 整型int、浮点型float、复数类型complex、布尔型bool;

序列类型(有序的数据集,可以通过索引访问):字符串str、元组tuple、列表list;

散列类型(无序的数据集):集合set、字典dict;

PS:元组、列表的元素可以是任意类型的对象(即支持嵌套),包括数字、字符串、布尔值、元组、列表、字典等。字典的key(不可变唯一)、集合的元素(需要支持哈希)不能是可变类型的数据对象(即不能是列表、集合和字典

变量定义:因为Python是动态语言,因此定义数据时不用声明数据类型,Python自动识别,但字符串、元组、列表、集合、字典的表示有固定的格式。

PS:通常说的名词变量,只是用于存储数据的标识符,与标识符对应的数据类型是否可变无关。

数据类型

定义格式

说明

字符串

使用引号括起来

不可变,可用单引、双引或三引号来定义

元组

使用 ( ) 圆括号括起来

不可变,通过逗号分隔元素,可省略括号

列表

使用 [ ] 方括号括起来

可变的,通过逗号分隔元素,可省略括号

集合

使用 { } 花括号括起来

逗号分隔元素,元素唯一无序,自动去重

字典

使用 { } 花括号,元素K-V对

K唯一,冒号【 : 】分隔键和值,逗号【 , 】分隔键值对

变量的数据类型获取:一般使用 type(variable_name)” 方法。也可以用 isinstance(variable_name, date_type)” 的方法判断某个变量是否是一个指定的数据类型,输出为bool值(如上代码)。

my_int = 10
print(type(my_int))  # 输出: <class 'int'>

my_float = 3.14
print(type(my_float))  # 输出: <class 'float'>

my_str = "Hello, World!"
print(type(my_str))  # 输出: <class 'str'>

my_tuple = (1, "hello", [1, 2, 3], {"name": "John"})
print(type(my_tuple))  # 输出: <class 'tuple'>

my_list = [2.5, True, (4, 5), {"apple", "banana"}]
print(type(my_list))  # 输出: <class 'list'>

my_set = {1, 2, 3, "apple", (4, 5)}
print(type(my_set))  # 输出: <class 'set'>

my_dict = {"name": "John", "age": 25, 1: "apple", (3, 4): [1, 2, 3]}
print(type(my_dict))  # 输出: <class 'dict'>

PS:再次强调,根据输出的数据类型结果,如<class 'int'>,记住首先属于一个被称为 int 的 class 类的实例,即是一个对象

数据转换

概述:Python数据类型之间的转化,一般直接将要转化的变量作为传入参数,直接调用要转化类型的构造函数。以此作为分类可以分为三种情况,即可以直接构造转化,通过特定函数处理后构造转化,不能转化三种情况。

常用的数据类型转换:

函数

说明

备注

int( x , base ) / int( x )

x (必须可转)转为整数,base表示进制,默认10

x 可以是 2 / 8 / 16 进制等表达,如"0xFF"、"0b101"、b'20'

float( x )

将 x 转换为⼀一个浮点数

str( x )

将对象 x 转换为字符串

eval( str )

str 可以理解为代码块,整体相当于有返回值的函数

可将 str 数据类型的字典内容转为 dict 数据类型

tuple( s )

将序列 s 转换为⼀一个元组

list( s )

将序列 s 转换为⼀一个列表

repr( x )

转对象 x为字符串,可以看做一种简单的序列化方式

其结果可以拿给“eval( )”函数再次计算

complex( real , imag )

创建复数, real为实部,imag为虚部(可选参数)

chr( x ) /ord( x )

整数 x 转为对应 Unicode 字符 / ASCII整数值

oct( x ) / bin( x ) / hex( x )

整数 x 转为对应 2 / 8 / 16 进制

PS:1、序列tuple、list之间可以直接转,区别只是前者不可变,后者可变;

2、集合转为序列(元组或列表)时,内部元素的顺序可能会发生改变,序列(元组或列表)转为集合时,会自动去重,同时元素位置改变

3、字符串可以转为列表(.split()函数)、字典(原数据是字典类型K-V对),以及元组、集合(按字符进行拆分);

4、数值类型(如int、float等)不可迭代,不能转换为多元素的元组、列表、集合或字典,但可以转化为str

5、字典可以将键、值或K-V对整体转化为元组、集合或列表,进行反向转化是,需声明K-V关系,注意Key的唯一性。

6、布尔型可以转化为 int 或 float ,但是不能直接转为复数(complex),True 转为1、1.0,False转为0、0.0。

# 字符串转列表
str1 = 'abc'
print(list(str1))  # ['a', 'b', 'c']
# 切分字符串
str2 = 'a b c'
print(str2.split())  # ['a', 'b', 'c']
str2 = "{'a': 97, 'b': 98}"
print(eval(str2))  # {'a': 97, 'b': 98}

# 列表转字符串
list1 = ['a', 'b', 'c']
print(''.join(list1))  # abc   以指定字符分隔字符串,元组、集合转str过程一样
print(str(list1))   # "['a', 'b', 'c']"

# 两个元组转字典
tuple1 = ('a', 'b')
tuple2 = (97, 98)
print(dict(zip(tuple1, tuple2)))  # {'a': 97, 'b': 98}
# 嵌套元组转字典
tuple3 = (('a', 97), ('b', 98))
print(dict(tuple3))  # {'a': 97, 'b': 98},集合、列表转字典时情况与之一样

# 字典转字符串
dict1 = {'a': 97, 'b': 98}
print(str(dict1))  # "{'a': 97, 'b': 98}",反转用eval(str)
# 字典转列表
dict1 = {'a': 97, 'b': 98}
print(list(dict1.items()))  # [('a', 97), ('b', 98)],字典转集合、元组情况一样

my_tuple = (("name", "Alice"), ("age", 30))
# 转换为键的列表
key_list = [item[0] for item in my_tuple]				
print(key_list)  # 输出: ['name', 'age']
# 转换为值的列表
value_list = [item[1] for item in my_tuple]		
print(value_list)  # 输出: ['Alice', 30]

bool_value1 = True
bool_value2 = False
print(int(bool_value1))			# 输出:2
print(float(bool_value2))		# 输出:0.0

输入输出

常用输出

概述:这里讲的Python输出,主要是如何传递参数的方式,主要有4种,一种是1.6版本开始的旧式字符串格式,一种是版本2.6开始的{ }+.format方式传递,一种是版本3.6以后使用 f-string(格式化字符串字面值) ,第四种是做字符串的拼接(类似于Java),主要掌握第三种,前两种见到知晓意思就行。

旧式字符串格式:

格式符号

传入值的格式转换成

备注

%s

字符串

%d

有符号十进制整数

% 和 d 之间可加 0x,x为整数,表示用0补前几位

%u

无符号⼗进制整数

%f

浮点数

% 和 f 之间可以加 .x ,表示精确到小数点几位

%c

字符

%x / %X 、%e / %E

小 / 大写的 十六进制数、科学计数法

PS:print( ) 是常用的输出方式,Python中默认输出换行,完整形式为【 print('info', end="\n")  】,指定以换行转义字符“\n”结尾,可以根据需要进行自定义

import logging

name = "John"; demo_int = 45;

# 旧式字符串格式
logging.basicConfig(level=logging.INFO)
logging.info("User %s is %d years old.", name, demo_int)
print('我的体重是%.2f公斤' % demo_int)       # 输出: 我的体重是45.00公斤
print('这串数字是%10d' % demo_int)           # 输出: 这串数字是        45
print('这串数字是%010d' % demo_int)          # 输出: 这串数字是0000000045

# {}+.format( ) 示例
with open("output.txt", "w") as file:				# w 表示写操作
    file.write("Age: {}\n".format(demo_int))		# Age:45 写入到output.txt文件
    print("My name is {}.".format(name))   			# 输出: My name is John.
print("My name is {} and I am {} years old.".format(name, demo_int))
# 输出: My name is John and I am 45 years old.

#  f-string(格式化字符串字面值),推荐主要掌握这一种
print(f"My name is {name} and I am {demo_int} years old.")
# 输出: My name is John and I am 45 years old.
常用输入

概述输入在Python中,即程序接收⽤户输⼊的数据的功能,使用 “input( str )” 进行实现。程序执⾏到 input 时,会等待⽤户输⼊完成之后才继续向下执⾏。

PS:Python 默认将输入作为字符串 str 类型进行存储,可根据需要进行数据类型转换。

password = input('请输⼊入您的密码:')
print(f'您输⼊入的密码是{password}')
print(type(password))               # 输出:<class 'str'>

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清雨lxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值