从0开始学Python 01

Python学习01

文章目录

  • Python学习01
      • 01-字面量
      • 02-注释
        • 注释的分类
          • 1.单行注释
          • 2.多行注释
      • 03-变量
      • 04-数据类型
        • 1.type()语句
      • 05-数据类型转换
        • 常见的转换语句
          • 代码演示
      • 06-标识符
        • 标识符命名规则
          • 1.内容限定:
          • 2.大小写敏感:
          • 3.不能使用关键字
          • 代码示例:
      • 07-运算符
        • **Python中的运算符:**
          • **代码示例**
        • 赋值运算符:
          • 代码示例
      • 08-字符串的三种定义方式
          • 代码示例
      • 09-字符串的拼接
      • 10-字符串格式化(占位符)
          • %s占位符
          • 格式化符号
          • 综合使用示例代码
      • 11-字符串格式化(精度控制)
      • 12-字符串格式化-快速写法
      • 13-对表达式进行格式化
      • 14-数据输入(input)


01-字面量


**字面量:**字面量是编程语言中表示固定值的直接写法,可以称之为字面量。

在起初的时候:我们只需要学习下面三种最简单的字面量类型

类型程序写法说明
整数666,520,-1314和现实中的写法一致
浮点数(小数)13.14,-5.20和现实中的写法一致
字符串(文本)“你好,python”用双引号引起来的都是(单引号也算)

代码示例

666
13.14
'你好,Python'
"你好,Python"# 使用print函数 输出上面的内容print(666)
print(13.14)
print('你好,Python')
print("你好,python")

02-注释

注释:在程序代码中对程序代码进行解释说明的文字。

作用:注释是不会被编辑器执行的。知识对代码进行解释说明,能够大大增强程序代码的可读性。


在很多语言中,注释都会有两种,除了使用的符号不同外。其意义都是一模一样的哦!

注释的分类

1.单行注释
  1. 单行注释: # 以 # 开头的,所有在# 右边的文字都是注释的内容,并不会被执行,(起辅助说明作用) 。
  2. 建议: # 和 注释内容之间使用一个空格隔开(规范而非标准) 官方和大厂企业都是这样使用的。
# 下面是一个数字字面量
666
# 下面是一个浮点数字面量
13.14
# 下面是二个字符串字面量
'你好,Python'
"你好,Python"# 使用print函数 输出上面的字面量
print(666)
print(13.14)
print('你好,Python')
print("你好,python")

2.多行注释
  1. 多行注释:"以 一对三引号 " 引起来的所有解释说明内容。
  2. **一般用于:**对文件进行说明使用。

"""本文件代码演示了:* 几种字面量的写法* 并且通过 print 语句输出了所展示的字面量
"""
print("----------------------------------------")
# 下面是一个数字字面量
666
# 下面是一个浮点数字面量
13.14
# 下面是二个字符串字面量
'你好,Python'
"你好,Python"# 使用print函数 输出上面的字面量
print(666)
print(13.14)
print('你好,Python')
print("你好,python")

03-变量

变量:在程序运行时,能够存储计算结果或能表达值的抽象概念。

可以理解为就是用来记录数据用的容器(像个盒子一样)

"""变量的语法格式:变量名称 = 变量值
"""

1.简单的变量使用

"""简单的 Python中变量的使用:
"""# 定义一个变量,用来存放手机电量
variable = 100
# 通过 print 语句,输出存放手机电量的变量
print("手机电量为:",variable)      # 100# 手机使用了一个小时,电量消耗50% (计算手机电量并输出)variable = variable - 50
print("一小时后电量为:",variable)   # 50print("--------------------------------------")"""变量的练习
"""
# 当前钱包余额 100 元  购买雪糕10元 和 牛奶 20元。
# 求余额,并使用 print 输出
money = 100
money = money - 10 - 20 print("消费后的钱包余额为:", money "元")  # 70元

04-数据类型


学习字面量的时候,我们就接触了三种数据类型

类型描述说明
string字符串类型用引号引起来的都是
int整型(有符号)数字类型、存放整数(正负都行)
float浮点型(有符号)数字类型、存放小数(正负都可以)

1.type()语句

我们可以使用type()语句来查看我们想要知道的数据类型。

语法:

type(被查看类型的数据)

"""type()语句的使用type()有返回结果的,原地返回结果或赋值给变量"""# 1. 直接查看输出类型信息
print(type("我是字符串类型"))
print(type(520))
print(type(13.14))# 2. 使用变量存储type()语句的类型结果
string_type = type("我是字符串类型")
int_type = type(520)
float_type = type(13.14)
print(string_type)
print(int_type)
print(float_type)# 3. 使用type() 语句,查看变量中的数据类型信息
variable = '我是变量'
result_type = type(variable)
print(result_type)

tyep()语句:查看的是数据的类型,哪怕你在变量里面。

在Python中:变量是没有类型的,但是变量里面的数据是有类型的


05-数据类型转换


为什么需要对数据的类型进行转换呢?

  • 默认的是字符串,我们处理的是数字。那么不匹配,对程序代码会造成印象。

常见的转换语句

语句(函数)说明
int (x)将x转换为一个整数
float(x)将x转换为一个浮点数
str(x)将对象x转换为字符串
  • 这三个语句都会再处理数据后原地返回结果,我们可以将结果赋值给变量、处理 或 使用print语句输出

代码演示
"""数据类型的转换:* 任何类型都可以转字符串* 不是任何字符串都可以转对象
"""# 将数字类型转换为字符类型
num_str = str(11)
print(type(num_str),num_str)  # <class 'str'> 11float_str = str(13.14)
print(type(float_str),float_str)  # <class 'str'> 13.14# 将字符串转换成数字型
str_num = int("520")
print(type(str_num),str_num)  # <class 'int'> 520# 将字符串转换成浮点型
srt_float = float("520")
print(type(srt_float),srt_float)  # <class 'float'> 520.0# 将整数转浮点型
num_float = float(520)
print(type(num_float),num_float)    # <class 'float'> 520.0# 将浮点数转整数类型 (丢失精度) 不四舍五入
float_num = int(13.14)
print(type(float_num),float_num)    # <class 'int'> 13

总结:

  1. 任何类型都可以转字符串
  2. 字符串必须有数字才可以转成数字型
  3. 浮点数转数字会丢失精度

06-标识符


标识符命名规则

1.内容限定:
  • 标识符命名中,只允许出现:

    1. 英文
    2. 中文
    3. 数字
    4. 下划线(_)
  • 注意点:

    1. 不推荐使用中文(规范非标准)
    2. 数字不可以开头

2.大小写敏感:
  • 同样的名字,但是有到小写不同依旧是可以执行的
# 大小写敏感
Name = "Name"
print(Name)  # Namename = "name"
print(name)  # name

3.不能使用关键字
  • Python中内内定的单词称之为”关键字“。有特定的用途,我们不能使用作为标识符。

例如:False True as and None def if else for while等

当然:如果大小写不一致就不算占用关键字。


代码示例:
"""Python标识符的代码演示
"""# 规则1: 内容限定《中文、英文、数字、下划线、不能使用数字开头》
# 错误示范: 1_name = "刘不住"
# 错误示范: name_! = "刘不住"
name = "刘不住"
name_1 = "刘不住"
_name1 = "刘不住"# 规则2:大小写敏感
Liubuzhu = "刘不住"
liubuzhu = "大小写敏感"
print(Liubuzhu)     # 刘不住
print(liubuzhu)     # 大小写敏感# 规则3:不可使用关键字
# 错误的示范→ 使用了关键字: class = 1
# 错误的示范→ 使用了关键字: def  = 1
Class = 1
Def = 11
print(Class)    # 1
print(Def)      # 11

建议

  1. 做到命名见名知意(哪怕拼音也行)
  2. 多个单词使用下划线分隔(函数等建议大小驼峰命名)
  3. 变量命名规范:建议规范使用全部小写

不遵守队则:会出现问题

不遵守规范:会不太高级


07-运算符


Python中的运算符:

运算符描述实例
+两个对象相加 A + B 结果为:100
-得到负数或 两个数相减:A - B 结果为:-100
*两个对象相乘 A * B 结果为:100
/A / B 结果为:100
//取整除9 // 2 结果为:4, 9.0 // 4.0 结果为:4.0
%取余返回除法的余数 A % B 结果为:100
**指数A ** B 为2的3次方:结果为: 8
代码示例
"""python 中的运算符的代码演示
"""# 算数运算符
print("1 + 1 = ", 1 + 1)       # 1 + 1 =  2
print("2 - 1 = ", 2 - 1)        # 2 - 1 =  1
print("3 * 3 = ", 3 * 3)        # 3 * 3 =  9
print("4 / 2 = ", 4 / 2)        # 4 / 2 =  2.0
print("5 // 2 = ", 5 // 2)       # 5// 2 =  2
print("5 % 2 = ", 5 % 2)        # 5 % 2 =  1
print("2 ** 3 = ", 2 ** 3)      # 2 ** 3 =  8

赋值运算符:

运算符描述实例
=赋值运算符把 = 右边的结果 赋给 左边的变量:如num = 1 + 2 * 3,结果为:7

复合运算符

运算符描述实例
+=加法赋值运算符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
代码示例
# 赋值运算符
num = 1 + 2 + 3# 复合运算符
num = 1
num += 1  # num += num + 1
print("num += 1 →",num)     # num += 1 → 2
num -= 1
print("num -= 1 → ",num)    # num -= 1 →  1
num *= 5
print("num *= 5 → ",num)    # num *= 5 →  5
num /= 2
print("num /= 2 → ",num)    # num /= 2 →  2.5
num //= 1
print("num //= 1 → ",num)   # num //= 1 →  2.0
num %= 0.5
print("num %= 0.5 → ",num)  # num %= 0.5 →  0.0
num **= 10
print("num **= 10 → ",num)  # num **= 10 →  0.0

08-字符串的三种定义方式


  • 字符串在Python中有多种定义形式

    1. 单引号定义法:name = '刘不住'
    2. 双引号引号定义法:name = "刘不住"
    3. 三引号定义法:name = """刘不住"""

注意:三引号定义法:和多行注释一样,使用变量接收他,就是字符串。不使用变量接收他,就视为注释。

代码示例
"""演示字符串的三种定义方式“* 单引号* 双引号* 三引号
"""# 单引号定义法
name = '刘不住'
print(type(name))   # <class 'str'># 双引号定义法
name = "刘不住"
print(type(name))   # <class 'str'># 三引号定义法
name = """
刘不住
"""
print(type(name))   # <class 'str'>

字符串引号嵌套问题

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

09-字符串的拼接


一般的我们拼接会和变量一起使用 通过 + 号进行拼接

"""字符串的拼接 * 通过 + 号完成
"""# 字符串字面量之间的拼接
print("刘不住" + "真的刘不住")  # 刘不住真的刘不住# 字符串字面量和变量的拼接
name = "真的刘不住"
num = 995
num = str(num)  # 记得类型转换:数字转字符在拼接
print("刘不住" + name + "怎么办" + num)   # 刘不住真的刘不住怎么办995

10-字符串格式化(占位符)


为什么需要字符串格式化:

  1. 变量过多,拼接起来很麻烦
  2. 字符串无法和数值后其他类型直接拼接。

解决方案:

%s占位符
  • % 表示:我要占位
  • S 表示: 将变量变成字符串放入占位的地方

综合起来就是:我先占个位置,等会有一个变量过来,我将他变成字符串然后放到这里。

注意点:

  1. 多个变量占位:变量要用括号括起来,使用逗号隔开
  2. 同时占位顺序和变量顺序一一对应

格式化符号

Python中常见的

格式符号转化
%s将内容转换成字符串,放入占位位置
%d将内容转换成整数,放入占位位置
%f将内容转换成浮点型,放入占位位置

用法和上面 %s一样

综合使用示例代码
"""字符串格式化* 占位符,完成拼接* %s 占位* % 我需要占位* s 格式化为字符串放入占位的地方
"""# 通过占位符完成字符串拼接
name = "刘不住"
message = "%s怎么办:" % name
print(message)  # 刘不住怎么办:# 通过占位符,完成数字和字符串的拼接
class_num = 5
C_name = "爱你"
I_love = "%s%s" % (class_num,C_name)
print(I_love)   # 5爱你print("-------------------------------")
name = "张三"
age = 18
height = 183.8
message = "姓名:%s,年龄:%d, 身高:%f" % (name,age,height)
print(message)	# 姓名:张三,年龄:18, 身高:183.800000

11-字符串格式化(精度控制)

对于精度控制:我们可以使用辅助符号 “ m .n ” 来控制数据的宽度和高度。

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

示例:

  1. %5d: 5 === m 表示控制整数的宽度为 5位,如数字24,就会变成 → 空格 空格 空格24.
  2. %5.2f: .2 === n 表示将宽度控制为5,将小数精度设置为2位。
  3. 注意:小数点和小数都会算入宽度。如 12.678设置 %7.2f后,结果为:空格空格12.68。小数部分限制2位精度,四舍五入后为.68.

"""字符串格式化:* 精度控制
"""
num1 = 11
num2 = 12.678
print("数字11宽度限制6,结果是:%6d" % num1)
print("数字11宽度显示1,结果是:%1d" % num1)
print("数字12.678宽度限制7,小数精度2,结果是:%7.2f" % num2)

记住两句话

  1. m 宽度要求比数字宽度还小,不生效
  2. n小数精度会再限制宽度后,保留对应的小数个数,同时四舍五入。

12-字符串格式化-快速写法


我们上面对%占位符已经有一定的了解,使用起来还是比较方便的,还能进行精度的控制。

可是身为有不同其他语言的python以优雅为代名词,必然有更优雅的写法:

语法:

f"内容{变量} 来实现快速格式化"

"""字符串格式化:快速写法f{变量}
"""# 直接在花括号里面丢变量就可以了
name = "刘不住"
age = 18
print(f"我是:{name},年龄:{age}")

这种方式:

  1. 不受类型限制
  2. 不做精度控制

对精度没有要求的时候快速可以使用这种方法


13-对表达式进行格式化


表达式:具有明确执行结果的代码语句

例如: 1 + 1 就会产生计算结果,就属于表达式。


简单理解就是,以后我们需要对表达是格式化,可以不直接格式化变量,直接对表达式格式化就行了(因为可以直接对表达式返回的结果进行直接格式化)

"""演示对表达式进行字符串格式化
"""print("1 * 1 的结果是:%d" % (1 * 1))
print(f"1 * 2 的结果是:{ 1 * 2}")
print("字符串python中的类型名是:%s" % type("字符串"))
  • 两种方式都是可以使用的。
"""股票价格计算* 股价增长 = 当前股价 * 增长系数**增长天数
"""
name = "传媒没"
stock_price = 19.99
stock_code = "002412"
stock_growth = 1.2
growth_days = 7
print(f"公司:{name}, 股票代码:{stock_code}, 当前股价:{stock_price}")
print("每日增长系数是:%.2f,经过 %d天增长后,股价达到了:%.2f" % (stock_growth,growth_days,(stock_price * stock_growth**growth_days)))

14-数据输入(input)


  • 数据输出: print
  • 数据输入: input

使用也是非常简单的:

  1. 使用 input()语句可以从键盘获取输入
  2. 使用一个变量接收(存储) input语句获取的键盘输入数据即可。

"""演示python的输入语句input* input 输入的内容都是字符串* 使用的时候注意类型转换
"""# input 使用方法
name = input("请告诉我你的名字")
print("原来你的名字叫:%s" % name)# input 输入的类型查看
num = input("请告诉我你的年龄:")
# 不管你输入的是什么类型,通过input输入的都是字符串类型
num = int(num) # 类型转换
print("你的年龄类型是:",type(num))

注意点:input输入的内容类型为字符串。

"""登录练习* 声明两个变量* 分别将两个需求的input用户输入的数据进行获取保存* 使用字符串格式化处理后输出
"""user_name = input("您好!请输入用户名:")
user_type = input("请输入您的等级:")
print(f"您好:{user_name},您是尊贵的:{user_type}用户,欢迎您登录!")

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL Connection not available.

Mysql 报错 最近部署在服务器上的mysql总是报这种错。 但是在服务器上&#xff0c;使用命令行是可以登录进mysq的。 cursor db.cursor() File “/home/ubuntu/miniconda3/envs/chatbot_env/lib/python3.9/site-packages/mysql/connector/connection_cext.py”, line 700, in …

基于JJWT理解JWT,JWS,JWE

JWT &#xff0c; 全写JSON Web Token, 是开放的行业标准RFC7591&#xff0c;用来实现端到端安全验证. 从开发者理解的角度来说&#xff1a; JWT 是一个定义传递信息的标准JWT 的Token是一个Base64编码的字符串&#xff0c; 类似 eyJhbGciOiJIUzI1NyJ9.eyJzdWIiOiJvc2NhciJ9.…

[Python进阶] 类的设计模式

4.11 设计模式 在Python中&#xff0c;类的设计模式是指一种通用的解决方案或设计模板&#xff0c;针对特定的问题或需求构建类结构&#xff0c;并提供相关的方法和属性。这些设计模式可以帮助开发人员遵循最佳实践、提高代码质量、增强可读性、降低维护成本。 需要注意的是&a…

房屋结构健康监测,科技助力让建筑更安全

房屋建筑是人们赖以生存的场所&#xff0c;然而当前我国许多房屋已经达到了使用寿命的中期&#xff0c;房屋的安全系数逐年降低&#xff0c;风险也随着时间的推移而累积。长期以来&#xff0c;我国的房屋普遍存在寿命短、隐患多的问题&#xff0c;“重建设&#xff0c;轻管理”…

探索PDF校对:为何这是现代数字文档的关键步骤

在今日的数字化浪潮中&#xff0c;文档的创建与分享从未如此频繁。尤其是PDF&#xff0c;作为一个普遍接受的标准文件格式&#xff0c;其在企业、学术和日常生活中的应用已经无处不在。但随之而来的挑战是如何确保文档的准确性和专业性。让我们深入探索PDF校对的重要性以及它为…

[国产MCU]-W801开发实例-定时器

定时器 文章目录 定时器1、定时器介绍2、定时器驱动API3、定时器使用示例本文将详细介绍如何使用W801的定时器模块。 1、定时器介绍 W801的定时器包含一个32-bit自动加载的计数器,该计数器由系统时钟经过分频后驱动。 W801有 6路完全独立定时器。实现了精确的定时时间以及中断…

element-ui中的el-table的summary-method(合计)的使用

场景图片&#xff1a; 图片1&#xff1a; 图片2&#xff1a; 一&#xff1a;使用element中的方法 优点&#xff1a; 直接使用summary-method方法&#xff0c;直接&#xff0c;方便 缺点&#xff1a; 只是在表格下面添加了一行&#xff0c;如果想有多行就不行了 1&#xff1a;h…

一、MQ的基本概念

1、初识MQ MQ全称是Message Queue&#xff0c;消息队列&#xff0c;多用于系统之间进行异步通信。队列的概念数据结构中有详细介绍过&#xff0c;先进先出&#xff0c;消息队列就是存储消息的数据结构。 同步调用和异步调用两者之间的区别&#xff1a; 同步调用&#xff1a;发…

opencv-dnn

# utils_words.txt 标签文件 import osimage_types (".jpg", ".jpeg", ".png", ".bmp", ".tif", ".tiff")def list_images(basePath, containsNone):# return the set of files that are validreturn list_file…

gdb 条件断点

条件断点&#xff0c;顾名思义就是有条件才会触发的断点&#xff0c;一般设置此类断点形如&#xff1a;b xxx if xxx&#xff0c;如&#xff1a; 要触发此断点则需要 is_created 0。打完断点我们也可以用 info b 查看一下当前已经设置的断点信息&#xff0c;如&#xff1a; 断…

【JavaSE】接口

文章目录 接口的概念接口的使用接口的特性实现多个接口接口间的继承抽象类和接口的区别 接口的概念 接口就是公共的行为规范标准&#xff0c;大家在实现时&#xff0c;只要符合规范标准&#xff0c;就可以通用。在Java中&#xff0c;接口可以看成是&#xff1a;多个类的公共规…

Spring核心配置步骤-完全基于XML的配置

Spring框架的核心配置涉及多个方面&#xff0c;包括依赖注入&#xff08;DI&#xff09;、面向切面编程&#xff08;AOP&#xff09;等。以下是一般情况下配置Spring应用程序的核心步骤&#xff1a; 1. **引入Spring依赖&#xff1a;** 在项目的构建工具&#xff08;如Maven、…

23 WEB漏洞-文件上传之解析漏洞编辑器安全

目录 几种中间件解析漏洞简要演示几种常见WEB编辑器简要演示几种常见CMS文件上传简要演示贴近实际应用下的以上知识点演示 各个WEB编辑器安全讲解 https://navisec.it/编辑器漏洞手册/ 各个CMS文件上传简要讲解 wordpress&#xff0c;phpcms&#xff0c; 几种中间件解析漏洞简…

JDK 新版本中都有哪些新特性?

面试回答 JDK 8 推出了 Lambda 表达式、Stream、Optional、新的日期 API 等 JDK 9 中推出了模块化 JDK 10 中推出了本地变量类型推断 JDK 12 中增加了 switch 表达式 JDK 13 中增加了 text block JDK 14 中增加了 Records JDK 15 中增加了封闭类 JDK 17 中扩展了 switch…

探索未知世界:桌面端3D GIS引领地理信息新时代

近年来&#xff0c;桌面端的三维地理信息系统&#xff08;3D GIS&#xff09;在地理信息领域迎来了显著的发展&#xff0c;为我们带来了更深入、更丰富的地理空间认知和数据分析体验。从城市规划到环境保护&#xff0c;从资源管理到应急响应&#xff0c;桌面端的3D GIS正逐渐成…

Mysql定时备份事件

创建了一个名为backup_database的定时任务&#xff0c;每天自动在当前时间的后一天开始执行。备份数据库的代码使用mysqldump命令将数据库导出为sql文件保存在指定的备份目录中。 需要注意的是&#xff0c;上述代码中的用户名 (username)、密码 (password)、主机名 (hostname) …

Java程序设计——在一个给定的字符串中查找并解析姓名、出生日期、个人网站、身高和体重信息,并输出相应的结果

package ch4;public class FindMess {public static void main(String[] args) {String mess "姓名:张三 出生时间:1989.10.16。个人网站:http://www.zhang.com。身高:185 cm,体重:72 kg";int index (int)(mess.indexOf(":")); //mess调用indexOf(Stri…

如何解决跨域问题

跨域问题是指在浏览器中发起跨域请求时&#xff0c;由于浏览器的同源策略限制&#xff0c;导致请求被拒绝或无法正常发送和接收数据。同源策略要求两个页面具有相同的协议、域名和端口号&#xff0c;否则就会出现跨域问题。 为了解决跨域问题&#xff0c;可以采取以下方法之一…

git Update failed cannot lock ref

报错详情 解决方案 百度了很多方案&#xff0c;过滤出了有效方案 去该项目下的.git文件里找到报错文件&#xff0c;本例中即为&#xff1a;.git/refs/tags/pre-RELEASE-PRE-20230817-03 删除该文件&#xff0c;重新pull&#xff0c;pull成功问题解决

Java并发工具类

JDK并发包中常用并发工具类&#xff1a; CountDownLatch、CyclicBarrier和Semaphore工具类提供了一种并发流程控制的手段&#xff1b; Exchanger工具类则提供了在线程间交换数据的一种手段。 等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成…