前言

!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022 Python的web开发(完整版) 入门全套教程,零基础入门到项目实战

1. 条件语句补充

1.1 基本语句

if 条件:
...
else:
...

1.2 多条件

if 条件1 :
xxx
elif 条件2 :
xxx
elif 条件三 :
xxx
else:
xxx

注意:所有条件中的else都可以省略

1.3 嵌套

此处省略三万字

2. while 循环

2.1 基本格式

while 条件:
...
...
...

2.2 循环基本使用

i = 0
while i < 10:
print(i)

2.3 break

break不能独立使用 只能放在循环内部使用 立即跳出循环 并终止循环

2.4 continue

continue也是只能放在循环里面 不能单独使用 跳出这一次循环并开始下一次循环

3. 字符串格式化

3.1 format(推荐)

# 占位符:

text= '我的名字叫{0},今年{1}岁'.format("计算机", 20)
print(text)
# 占位符:

text = '我的名字叫 {0} ,就是 {0} 的 {0},今年 {1} 岁'.format("计算机", 20)
print(text)
# 我的名字叫 计算机 ,就是 计算机 的 计算机,今年 20 岁
# 占位符:

text = '我的名字叫 {0} ,就是 {0} 的 {0},今年 {1} 岁 {0}'.format("计算机", 20)
print(text)
# 我的名字叫 计算机 ,就是 计算机 的 计算机,今年 20 岁 计算机
text = '我的名字叫{},我今年{}岁,我爱吃{}'.format("计算机", 20, 'Apple')
print(text)
# 比较常用
tpl = "我的名字叫{} 今年{}岁"
v1 = tpl.format("计算机", 19)
v2 = tpl.format("电脑", 20)
print(v1)
print(v2)
text = '我的名字叫{name},我今年{age}岁,我爱吃{food}'.format(name="计算机", age=20, food='Apple')
print(text)

3.2 %

text = '我的名字叫 %s ,今年 %d 岁' % ('计算机', 19)
print(text)
text = '我的名字叫 %s ,今年 %d 岁'
v1 = text % ('计算机', 19)
print(v1)

3.3 f-string python3.6以后才有

name = "计算机"
age = 10
text = f'我的名字叫{name}, 我今年{age}岁'
print(text)

4. 运算符(特殊)

  • 算数运算符

  • 比较运算符

    >
    >=
    <
    <=
    ==
    != (python现已不支持<>)
  • 赋值运算符

    =
    +=
    *=
    -*
    /=
    %=
  • 成员运算

    text = '日本人不是人'
    v1 = '日本' in text
    v2 = '俄罗斯' in text
  • 逻辑运算

    与 and
    或 or
    非 not
  • 关于逻辑运算符的一些特别应用

    • 一般:

      v1 = 条件 and/or 条件
    • 高级用法:整体结果取决于哪个值,那么就是这个值. 很少写,面试题

      '''
      值 and 值 逻辑运算的结果取决于哪个值,结果等于那个值
      拿 2 and 4 举例,
      首先判断2,为真,
      那么只要and后面的值为真,那么就为真,那么值就是后面那个值.
      如果and后面的值为假,那么就为假,那么值就为前面的那个值.
      (即前面一个为真以后,and判断的整个语句取决于后面那个值)
      '''
      # v1 = 值 and/or 值
      
      v1 = 1 and 2
      v2 = 2 and 4
      print(v1)
      print(v2) # 运行结果:
      2
      4
      v1 = 1 and 2
      v2 = 2 and 4
      print(v1)
      print(v2) v3 = 0 and 1
      v4 = 1 and 0
      print(v3)
      print(v4) # 运算结果
      2
      4
      0
      0
      v1 = 1 and 2
      v2 = 2 and 4
      print(v1)
      print(v2) v11 = 2 and 1
      v12 = 4 and 2
      print(v11)
      print(v12) v3 = 0 and 1
      v4 = 1 and 0
      print(v3)
      print(v4) # 运算结果
      2
      4
      1
      2
      0
      0
      v1 = 6 and 9------------------------------------------------------------------>    9
      v1 = 0 and 1------------------------------------------------------------------> 0
      v1 = 88 and 0-----------------------------------------------------------------> 0
      v1 = "" and 9-----------------------------------------------------------------> ""
      v1 = "计算机" and "专业"------------------------------------------------------> "专业" v1 = 1 or 2-------------------------------------------------------------------> 1
      v1 = 0 or 2-------------------------------------------------------------------> 2
      v1 = 1 and 8 or 9 and 10 or 11 or 12 and 0 or "" and "计算机"-----------------> 8
      8 or 10 or 11 or 0 or ""
      8 8 8 8

      # 低级写法:
      name = 19
      if bool(name):
      v1 = name
      else:
      v1 = 666 # 高级写法:
      name = 19
      v1 = name or 666

5. 计算机中的一些基础概念

5.1 进制

计算机底层全都是01010101010101(二进制)

在python中转换进制:

# 二进制  :  0b000111
# 八进制 : "0o311"
# 十六进制: "0x256c" # 进制转换:
data = 238 # 十进制
bin(data) # 二进制
oct(data) # 八进制
hex(data) # 十六进制 # 其他进制转换为十进制:
d1 = int("0b11101110", base=2)
d2 = int("0o356", base=8)
d3 = int("0xee", base=16)

以十进制为中介转换

5.2 计算机中的单位

8G 1T 300M

  • b (bit) 位/比特

  •   0    1位
    1 1位
  • B (Byte) 字节

    1000 0101			   1个字节
    0000 1111 0010 0101 两个字节
  • KB 千字节

  • M 兆

  • MB 兆字节

  • G 千兆

  • T 万亿

  • PB……

  • 假设:办理了1G套餐:

    • (1024 * 1024 * 8) 个bit
    • 一个汉字,占2B -> 16bit
    • 那么1G能发多少个汉字? (1024 * 1024 * 8) / 16

5.3 编码

编码 文字与0101的对照表

5.3.1 ASCII编码

  • 256个对应关系
  • 在ASCII码中使用一个字节(8位)表示一个符号
  • 只能有256种可能

5.3.2 GBK和GBK-2312

  • GBK-2312 : 1980年

  • GBK : 包含中日韩等文字 1995年

5.3.3 unicode(万国码)

  • ucs2 : 用固定的两个字节表示二进制和文字的对应关系 2 ** 64 = 65535

  • ucs4 : 用固定的四个字节表示二进制和文字的对应关系 2 ** 32 = 429467296

5.3.4 UTF-8编码

对unicode进行压缩,并且不使用固定字节的编码。

写代码的时候一定要保存为UTF-8编码!

一般UTF-8对于中文压缩以后,用三个字节表示。

5.3.5 python

name = "计算机"                 ->     字符串类型 在Python内部 使用unicode编码存储(ucs4)
data = name.encode('utf-8') -> 字节类型 使用UTF-8编码存储

b'\xe8\xae\xa1 \xe7\xae\x97 \xe6\x9c\xba'
计 算 机

在Python开发中,以后要做文件存储或者网络传输的时候,不能直接使用字符串,而是需要将字符串压缩成utf-8的编码的字节,然后再来传输和存储。

# 在文件中写入字符串
name = "计算机" # 打开文件
file = open("name.txt", mode='ab') # 写入内容
file.write(name.encode('utf-8')) # 关闭文件
file.close()
  • 文件编码:

    • 我们自己写的都是文本,按照某种编码存储编码,那么就用的是某一种编码。

    • 读取文件:要读取文件内容,我们需要用同样的编码打开才可以。

    • Python解释器:保存和打开文件的时候,用的是utf-8

    • Python将代码读取到内存之后,需要进行语法和词法分析,一定会有不同的数据类型之分;

      name = "计算机"   ->   字符串 去unicode对应关系中找
      age = b"aa000" -> 字节 去UTF-8对应的关系中找

6. 重新学习数据类型(重要)

布尔值   bool
整型 int
字符串 str
列表 list []
元组 tuple ()
字典 dict {}
n1 = "root"
res = n1.upper() # res -> "ROOT"
list_1 = [1, 2, 3, 4]
list1.append(4) # 在列表尾部追加一个元素 list_2 = [11, 22, 33]
list_2.append(44) # 在列表尾部追加一个元素

attention: 将每个类型的方法封装到类型里面

6.1 字符串

6.1.1 如何定义字符串

name = "计算机"
email = "123456@123.com"

注意:字符串是一个不可变的类型

6.1.2 独有的功能

upper lower isdecimal strip lstrip rstrip replace

data = "root"
res = data.功能名()
# 但是,data的值还是原来的值,不会变
  • 大写 小写

    name = "root"
    res = name.upper() # "ROOT" name = "Root"
    res = name.lower() # "root"
  • isdecimal 判断字符串是不是整数

    data = "999"
    v1 = int(data) data = "计算机"
    v1 = int(data) # 报错
    • 关于作用域:

      • 在java中 以代码块为作用域 在一个代码块中创建的代码块,那么在代码块外不能访问
      • 在Python中,以函数为作用域 函数执行到那个点以后创建了代码后 才会创建变量,如果代码执行不到,那么不会创建这个变量
  • startswith 和 endswith 判断一个字符串是以…开头或者以…结尾

    name = "计算机科学与技术"
    
    v1 = name.starswith("计算")  # True
    v2 = name.endswith("技") # False
  • strip/lstrip/rstrip 去除空白(包含回车 换行 制表符"\t")

    name = " 计算 机 "
    name.strip() # "计算 机" 只能去除两边的空格
    name.lstrip() # "计算 机 " 只能去除左边的空格
    name.rstrip() # " 计算 机" 只能去除左边的空格

  • replace 替换,将一个字符串中指定 的内容替换成其他的东西

    text = "计算机科学与技术"
    new_text = text.replace("计算机", "软件") print(text)
    print(new_text)

  • 练习题:

    # 让用户输入一段文本 如果出现 计算机,替换成***
    
    text = input("请输入您的评论\n>>>")
    new_text = text.replace("计算机", "***")
    print(new_text)

写在最后

由于这些笔记都是从typora里面粘贴过来的,导致图片会加载失败,如果想要带图片的笔记的话,我已经上传至github,网址(​​https://github.com/wephiles/python-foundation-note​​​)如果github上不去的话也可以去我的gitee下载,网址(​​https://gitee.com/wephiles/python-django-notes​​)。欢迎大家来下载白嫖哦,最后,如果可爱又善良的你能够给我github点个star,那你将会是这个世界上运气最好的人喔。

Python基础笔记-while、字符串格式化、运算符、基础概念与数据类型的更多相关文章

  1. python学习笔记:字符串格式化

    % 格式化方法 "我的名字是 %s, 我的年龄是 %d" % (name, age) 常用格式:%[(name)][flags][width].[precision]typecod ...

  2. Python基础(十五):Python的3种字符串格式化,做个超全对比!

    有时候,为了更方便.灵活的运用字符串.在Python中,正好有3种方式,支持格式化字符串的输出 . 3种字符串格式化工具的简单介绍 python2.5版本之前,我们使用的是老式字符串格式化输出%s. ...

  3. Python学习笔记整理总结【语言基础篇】

    一.变量赋值及命名规则① 声明一个变量及赋值 #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi name1="sol ...

  4. Python3基础笔记_字符串类型

    # 1.Python转义字符 a = "sqwerdf" # 2.Python字符串运算符 ''' + 字符串连接 a + b 输出结果: HelloPython * 重复输出字符 ...

  5. 字符串:格式化 - 零基础入门学习Python015

    字符串:格式化 让编程改变世界 Change the world by program 字符串:格式化 上节课我们介绍了Python字符串的N多种奇葩方法的用法,但我们唯独漏了一个format()方法 ...

  6. python学习笔记——多进程间通信——Linux信号基础

    1 信号的基本描述 Signal信号(其全程为软中断信号)是Linux系统编程中非常重要的概念,信号是异步进程中通信的一种方式. 作用是通知进程发生了异步事件.进程之间可以调用系统来传递信号, 本身内 ...

  7. Python学习笔记(一):基础知识

    一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学 二.编译型语言和解释型语言 编译型语言就是把程序编译成计算机语言然后执行,(一次编译到处运 ...

  8. Python学习笔记3—字符串

    原始字符串 使用\转义或者r,这种方法在网站设置网站目录结构的时候非常管用. >>> dos="c:\news" >>> print dos c ...

  9. Python中print/format字符串格式化实例

    Python 字符串格式化使用 "字符 %格式1 %格式2 字符"%(变量1,变量2),%格式表示接受变量的类型.简单的使用例子如下 # 例:字符串格式化Name = '17jo' ...

  10. Python学习笔记:字符串

    字符串 字符串定义:字符串可以使用一对单引号.双引号或三引号来定义,即便是单个字符也会当做字符串来处理(Python中没有字符类型,单个字符也就是只有一个字符的字符串而已). 原始字符串:字符串中反斜 ...

随机推荐

  1. Flutter (2.5) - A splash screen was provided to Flutter, but this is deprecated

    Flutter (2.5) - A splash screen was provided to Flutter, but this is deprecated 升级到Flutter 2.5 版本后,启 ...

  2. Debian 11 (bullseye) 国内软件源

      本文整理了Debian 11在国内的几个软件源. 1.使用说明 一般情况下,将/etc/apt/sources.list文件中Debian默认的软件仓库地址和安全更新仓库地址修改为国内的镜像地址即 ...

  3. Qt开源作品10-代码统计组件

    一.前言 代码行数统计主要用来统计项目中的所有文件的代码行数,其中包括空行.注释行.代码行,可以指定过滤拓展名,比如只想统计.cpp的文件,也可以指定文件或者指定目录进行统计.写完这个工具第一件事情就 ...

  4. Soulmate

    理想之所以是理想,也就是因为它只能存在于脑海中,天上月是天上月,水中花是水中花.但我们仍可以怀揣着对乌托邦的向往,所以,我对理想中的对象设想如下: 原来形容一个女子的眉眼,我总喜欢说眉眼如黛,眉如远山 ...

  5. [转]快速搭建简单的LBS程序——地图服务

    很多时候,我们的程序需要提供需要搭建基于位置的服务(LBS),本文这里简单的介绍一下其涉及的一些基本知识. 墨卡托投影 地图本身是一个三维图像,但在电脑上展示时,往往需要将其转换为二维的平面图形,需要 ...

  6. Go基于观察者模式实现的订阅/发布

    面UCloud的时候问到了这题,下来看了一下是基于观察者模式实现的,仅作记录 /** * @Author: lzw5399 * @Date: 2021/5/20 20:38 * @Desc: 基于观察 ...

  7. kubernetes系列(七) - Pod生命周期

    目录 1. pod生命周期 2. initC 2.1 initC介绍 2.2 initC的作用 2.3 initC的模版 2.4 initC的一些其他补充 3. Pod健康性检查(liveiness) ...

  8. 将 EasySQLite 从 .NET 8 升级到 .NET 9

    前言 EasySQLite是一个.NET 8操作SQLite入门到实战的详细教程,主要是对学校班级,学生信息进行管理维护.今天咱们的主要内容是将EasySQLite从.NET 8升级到.NET 9. ...

  9. WPF设置默认语言地区CultureInfo

    public partial class App : Application { public App() { CultureInfo cultureInfo = new CultureInfo(&q ...

  10. [转载]「服务」WCF中NetNamedPipeBinding的应用实例

    「服务」WCF中NetNamedPipeBinding的应用实例 WCF中有很多种绑定,根据官方的说法,NetNamedPipeBinding是适用于同一台主机中不同进程之间的通信的. 今天终于实现了 ...