[Python]一、Python基础编程

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程

1. Python简介

Python优点:

  1. 学习成本低
  2. 开源
  3. 适应人群广泛
  4. 应用领域广泛

1.1 Python解释器

下载地址:Download Python | Python.org

1.2 Python开发IDE -- Pycharm

2. 基础语法

2.1 注释

  • 注释的作用:用自然语言对代码进行解释说明,方便后期维护。
  • 注释的分类
    • 单行注释: # 注释内容
    • 多行注释:"""注释内容""" 或 '''注释内容'''
  • 解释器不执行注释的内容

2.2 变量

定义:程序中数据都是临时存储在内存中,为了更快速的查找和使用这个数据,通常把这个数据在内存中存储之后定义一个名称,这个名称就是变量。

标识符:
        - 由数字、字母、下划线组成;
        - 不能数字开头
        - 不能使用内置关键字

False None True 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 with
yield
        - 严格区分大小写

2.3 数据类型

`type()` 函数用于返回对象的类型。它可以接受一个参数,也可以接受三个参数。

1. 当只传递一个参数时,它返回该参数的类型。
   x = 5
   print(type(x))  # 输出:<class 'int'>

2. 当传递三个参数时,`type()` 可以返回一个新的类型对象。语法如下:
   type(name, bases, dict)

   - `name`: 类型的名称。
   - `bases`: 元组,表示基类的类型。
   - `dict`: 字典,包含类型的属性。

 这种用法通常用于动态创建类:
   MyCustomClass = type('MyCustomClass', (object,), {'attr': 'value'})
   obj = MyCustomClass()

   print(obj.attr) # 输出value
   print(type(obj))  # 输出:<class '__main__.MyCustomClass'>

总之,`type()` 函数在Python中用于返回对象的类型,也可以用于动态创建新的类型。

动态创建类在编程中有几种常见用途,其中包括:

  1. 工厂模式(Factory Pattern):动态创建类允许根据运行时的条件创建不同类型的对象,从而实现工厂模式,根据需要创建不同种类的类实例。

  2. 运行时代码生成(Metaprogramming):有时候需要在运行时生成某些类以及这些类的属性和方法,这种动态创建类的机制可以用于元编程等需要在运行时构建代码的场景。

  3. 插件系统(Plugin System):通过动态创建类,可以实现插件系统,动态加载和实例化插件类以扩展应用程序的功能。

  4. ORM(对象关系映射):在ORM库中,动态创建类可以用于根据数据库模式创建对应的对象类。

2.4 输出

2.4.1 格式化占位符号

%s:字符串,也可以承接int,float等类型

%d:有符号十进制整数

%f:浮点数

%c:字符

%u:无符号十进制整数

%e:小写e的科学计数法

%E:大写E的科学计数法

%g:%f和%e的简写

%G:%f和%E的简写

%06d : 表示输出的整数显示位数,不⾜以 0 补全,超出当前位数则原样输出,
        print('--%06d--' % 123) # --000123--

        print('--%-6d--' % 123) # --123 --

%.2f : 表示⼩数点后显示的⼩数位数。
同时输出多个变量,%(a1,a2,a3):
name = 'Seven'
age = 18
weight = 71.4
stu_id = 1
print('我的名字是%s,今年%d岁,体重%.2fkg,学号是%06d' % (name, age, weight, stu_id))

# 我的名字是Seven,今年18岁,体重71.40kg,学号是000001

2.4.2 f-字符串

 f'{表达式}'

2.4.3 结束符

print ( ' 输出的内容 ' , end = "\n" )
Python 中, print() 默认⾃带 end="\n" 这个换⾏结束符,所以导致每两个 print 直接会换⾏展示,⽤户可以按需求更改结束符。
print ( ' 输出的内容 ' , end = "\t" )

2.5 输入

input ( " 提示信息 " )
输入函数input的特点:
  • 当程序执⾏到 input ,等待⽤户输⼊,输⼊完成之后才继续向下执⾏。
  • Python中, input 接收⽤户输⼊后,⼀般存储到变量,⽅便使⽤。
  • Python中, input 会把接收到的任意⽤户输⼊的数据都当做字符串处理。

2.6 转换数据类型

input会把接收到的任意用户输入都当作字符串处理,因此要正确处理不同类型的数据,需要进行数据类型的转换。

函数 说明
int(x [,base ])
x转换为⼀个整数,其中  base 参数用于指定数字的进制,默认是10。

num = int("12", 8) # base 8
print(num) # 输出: 10

将字符串 "12" 视为一个八进制数。因此,int("12", 8) 的结果是 十进制的10

float(x )
x 转换为⼀个浮点数
complex(real [,imag ])
创建⼀个复数, real 为实部, imag 为虚部,用j表示

com_i = complex(1, 4)
print(com_i) # (1+4j)

str(x )
将对象 x 转换为字符串
repr(x)

用于返回一个对象的字符串表示形式。

- 字典:

my_dict = {'name': 'Alice', 'age': 30}
print(repr(my_dict)) # 输出: {'name': 'Alice', 'age': 30}

自定义对象:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Alice", 30)
print(repr(person))  # 输出: Person(name=Alice, age=30)

总结:

  • repr(x) 提供了对象的详细字符串表示,通常用于调试和记录。
  • 输出的字符串应该能够用来重建这个对象(如果可能)。
  • 对于自定义类,可以通过实现 __repr__ 方法来定义对象的字符串表示形式。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"P(name={self.name}, age={self.age})"


person = Person("Alice", 30)
print(repr(person))  # 输出: P(name=Alice, age=30)

eval(str)

eval(str) 函数用于将给定的字符串作为 Python 表达式进行求值,并返回求值结果。

x = 10
result = eval("x * 2")
print(result)  # 输出: 20

列表推导式:

result = eval("[x**2 for x in range(5)]")
print(result)  # 输出: [0, 1, 4, 9, 16]

调用函数:

def add(a, b):
    return a + b

result = eval("add(5, 3)")
print(result)  # 输出: 8

安全风险:

使用 eval() 时要小心,因为它可以执行任意代码。如果字符串来自不可信的来源,可能会导致安全问题。例如

user_input = "__import__('os').system('echo Hello, World!')"
eval(user_input)  # 如果 user_input 没有被安全处理,将执行该命令

总结

  • eval(str) 用于将字符串作为 Python 表达式进行求值。
  • 它可以处理算术表达式、变量引用、列表推导式和函数调用。
  • 使用 eval() 时需谨慎,尤其是在处理不可信输入时,以避免安全风险。
tuple(s)
将序列 s 转换为⼀个元组
list(s)

将序列s转化为一个列表list

bin(x)
将⼀个整数转换为⼀个⼆进制字符串

`bin(x)` 是 Python 中的一个内置函数,用于将一个整数转换为其二进制字符串表示形式。返回值是以 `'0b'` 开头的字符串,表示这是一个二进制数。

示例

1. 转换正整数:
   num = 10
   binary_str = bin(num)
   print(binary_str)  # 输出: 0b1010

2. 转换负整数:
   num = -10
   binary_str = bin(num)
   print(binary_str)  # 输出: -0b1010

3. 转换零:
   num = 0
   binary_str = bin(num)
   print(binary_str)  # 输出: '0b0'

总结

- `bin(x)` 将整数 `x` 转换为其二进制字符串形式。
- 返回的字符串以 `'0b'` 开头,表示这是一个二进制数。
- 可以处理正整数、负整数和零。

2.7 运算符

2.7.1 算术运算符

        

混合运算优先级顺序: () ⾼于 ** ⾼于 * / // % ⾼于 + -

2.7.2 赋值运算符

        

        

2.7.3 比较运算符

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/879606.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

链表--(1)链表的概念

前言引入 之前我们学习了数组这一概念,使用数组可以在编程时增加程序的灵活性。但在c语言中不允许定义动态数组的类型也不能随意调整数组的大小,往往会导致内存空间的浪费。由此我们推出链表。链表是动态进行内存分配的一种结构,它可以随时为其结点分配需要的存储空间也方便…

CSS中的位置定位总结

文章目录 静态定位相对定位绝对定位固定定位 静态定位 静态定位(position:static)/默认的文档流布局 块级元素按照书写顺序从上往下依次排列行内/行内块元素按照书写顺序从左到右依次排列&#xff0c;一行放不下才换行文档流中的元素都是紧密排布的&#xff0c;没有大的空隙&…

windows查找端口号被占用

在很多开发的时候&#xff0c;可能端口号有被占用的情况&#xff0c;导致项目打不开。 用下面这个命令即可&#xff1a; 比如我的3000端口被占用&#xff0c;我找找哪个进程在占用我的3000端口号

数据结构:堆的算法

目录 一堆的向上调整算法二堆的向下调整算法三堆的应用:堆排序四TOPK问题 一堆的向上调整算法 我们在堆中插入一个数据一般实在堆的最后插入然后可以一步一步与上层结点&#xff08;父结点进行比较&#xff09;&#xff0c;继而进行交换&#xff0c;完成二叉树的结构&#xff0…

人工智能辅助汽车造型设计

随着科技的不断进步&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域的应用越来越广泛&#xff0c;汽车设计行业也不例外。尤其在车辆外观造型设计中&#xff0c;AI正在成为设计师的重要助手&#xff0c;通过提供强大的工具和独特的创意方式&#xff0c;革新了传统设…

code eintegrity npm err sha512

当 npm install 出现报错的时候&#xff1a; 你应该这样去解决&#xff1a; 删除 package-lock.json 文件&#xff0c;重新执行 npm install。 问题出现的原因 EINTEGRITY 错误码表示在npm缓存中无法找到 指定sha512校验合的模块。 出现这个问题的原因是缓存不一致&…

把设计模式用起来!(4) 用不好模式?之原理不明

&#xff08;清华大学出版社 《把设计模式用起来》书稿试读&#xff09; 上一篇&#xff1a;把设计模式用起来&#xff01;&#xff08;3&#xff09;用不好模式&#xff1f;之时机不对 为什么用不好设计模式&#xff1f;——原理不明 难搞的顾客&#xff1a;“抹这种霜&#…

使用c#制作一个小型桌面程序

封装dll 首先使用visual stdio 创建Dll新项目,然后属性管理器导入自己的工程属性表&#xff08;如果没有可以参考visual stdio 如何配置opencv等其他环境&#xff09; 创建完成后 系统会自动生成一些文件&#xff0c;其中 pch.cpp 先不要修改&#xff0c;pch.h中先导入自己需…

人工智能 | 基于ChatGPT开发人工智能服务平台

简介 ChatGPT 在刚问世的时候&#xff0c;其产品形态就是一个问答机器人。而基于ChatGPT的能力还可以对其做一些二次开发和拓展。比如模拟面试功能、或者智能机器人功能。 模拟面试功能包括个性化问题生成、实时反馈、多轮面试模拟、面试报告。 智能机器人功能提供24/7客服支…

GESP C++二级样题卷

一、单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 1.目前主流的计算机储存数据最终都是转换成&#xff08; &#xff09;数据进行储存。 ​ A&#xff0e;二进制 ​ B&#xff0e;十进制 ​ C&#xff0e; 八进制 ​ D&#xff0e;十六进制 2.已知大写字…

JDBC 编程

目录 JDBC 是什么 JDBC 的工作原理 JDBC 的使用 引入驱动 使用 常用接口和类 Connection Statement ResultSet 使用总结 JDBC 是什么 JDBC&#xff08;Java Database Connectivity&#xff09;&#xff1a;Java数据库连接&#xff0c;是一种用于执行 SQL 语句的Java…

20240920 每日AI必读资讯

阿里通义千问开源Qwen2.5系列模型&#xff1a;Qwen2-VL-72B媲美GPT-4 - Qwen2.5系列模型开源&#xff0c;包括通用语言模型和专业领域模型&#xff0c;提升知识获取、编程和数学能力。 - 模型支持长文本处理&#xff0c;生成最多8K tokens内容&#xff0c;对29种以上语言提供…

Java多线程面试精讲:源于技术书籍的深度解读

写在前面 ⭐️在无数次的复习巩固中&#xff0c;我逐渐意识到一个问题&#xff1a;面对同样的面试题目&#xff0c;不同的资料来源往往给出了五花八门的解释&#xff0c;这不仅增加了学习的难度&#xff0c;还容易导致概念上的混淆。特别是当这些信息来自不同博主的文章或是视…

SpringCloud系列之一---搭建高可用的Eureka注册中心

前言 本篇文章主要介绍的是SpringCloud相关知识、微服务架构以及搭建服务注册与发现的服务模块(Eureka)以及Eureka集群。 GitHub源码链接位于文章底部。 什么是SpringCloud Spring Cloud 是一系列框架的有序集合。 它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设…

ATGM331C-5T杭州中科微全星座定位授时模块电气参数

ATGM331C-5T 系列模块通过 UART 作为主要输出通道&#xff0c;按照 NMEA0183 的协议格式输出。 产品选型&#xff1a; 性能指标&#xff1a; 出色的定位导航功能&#xff0c;支持 BDS/GPS 卫星导航系统的单系统授时&#xff0c;以及任意组合的多系统联合定位&#xff0c;并支持…

【学习笔记】SSL/TLS证书安全机制之证书透明

1、概念 CT - Certificate Transparency&#xff0c;证书透明 2、Trying to Solve 如果意外的 CA 为我们的域名颁发证书&#xff0c;我们是不可见&#xff0c;这就是证书透明&#xff08;CT&#xff09;要解决的问题 3、How CT Works 任何CA机构颁发的所有证书的公共登记处&…

望繁信科技携流程智能解决方案亮相CNDS 2024新能源产业数智峰会

9月13日&#xff0c;CNDS 2024中国新能源产业数智峰会在北京圆满落幕。本次峰会以“走向数字新能源”为主题&#xff0c;汇聚了来自新能源领域的顶尖领袖、专家学者及知名企业代表&#xff0c;共同探讨数字化技术在新能源行业中的创新应用和发展趋势。上海望繁信科技有限公司&a…

网安标委发布敏感个人信息识别指南

9月14日全国网络安全标准化技术委员会秘书处发布《网络安全标准实践指南——敏感个人信息识别指南》 敏感个人信息识别规则&#xff1a; 一旦遭到泄露或者非法使用&#xff0c;容易导致自然人的人格尊严受到侵害、自然人的人身安全受到危害、自然人财产安全受到危害。 注意&am…

CISP备考题库(八)

CISP即“注册信息安全专业人员”&#xff0c;是面向信息安全企业、信息安全咨询服务机构、信息安全测评机构、政府机构、社会各组织、团体、大专院校以及企事业单位中负责信息系统建设、运行维护和管理工作的信息安全专业人员所颁发的专业资质证书。 更多CISP介绍&#xff1a;e…