IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python3语法(二) -> 正文阅读

[Python知识库]Python3语法(二)

Python代码运行方式

  • 脚本式
  python3 ~/PycharmProjects/day03/6.test.py
  • 交互式
  python3

进制

v1 = bin(25) # 十进制转换为二进制
print(v1) # "0b11001"

v2 = oct(23) # 十进制转换为八进制
print(v2) # "0o27"

v3 = hex(28) # 十进制转换为十六进制
print(v3) # "0x1c"

python相关编码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Author: yinwu
@Time: 2021年07月27日 16:33
@FileName: 编码转换.py
"""

name = "腾讯科技"
data = name.encode("utf-8")

# 打开一个文件
file_object = open("log.txt",mode="wb")
# 在文件中写内容
file_object.write(data)
# 关闭文件
file_object.close()

编码汇总

  1. 计算机上所有的东西最终都会转换成为二进制再去运行。

  2. ascii编码、unicode字符集、utf-8编码本质上都是字符与二进制的关系。

    • ascii,字符和二进制的对照表。
    • unicode,字符和二进制(码位)的对照表。
    • utf-8,对unicode字符集的码位进行压缩处理,间接也维护了字符和二进制的对照表。
  3. ucs2和ucs4指的是使用多少个字节来表示unicode字符集的码位。

  4. 目前最广泛的编码为:utf-8,他可以表示所有的字符且存储或网络传输也不会浪费资源(对码位进行压缩了)。

  5. 二进制、八进制、十进制、十六进制其实就是进位的时机不同。

  6. 基于Python实现二进制、八进制、十进制、十六进制之间的转换。

  7. 一个字节8位

  8. 计算机中常见单位b/B/KB/M/G的关系。

  9. 汉字,用gbk编码需要用2个字节;用utf-8编码需要用3个字节。

  10. 基于Python实现将字符串转换为字节(utf-8编码)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Author: yinwu
@Time: 2021年07月27日 16:42
@FileName: 编码练习.py
"""

# 字符串类型
name = "腾讯"

print(name) #腾讯
# 字符串转换为字节类型
data = name.encode("utf-8")
print(data) #b'\xe8\x85\xbe\xe8\xae\xaf'

# 把字节转换为字符串
old = data.decode("utf-8")
print(old)  #腾讯
  1. 基于Python实现将字符串转换为字节(gbk编码)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Author: yinwu
@Time: 2021年07月27日 16:42
@FileName: 编码练习.py
"""

# 字符串类型
name = "腾讯"

print(name) #腾讯
# 字符串转换为字节类型
data = name.encode("gbk")
# print(data) #b'\xe8\x85\xbe\xe8\xae\xaf'  utf-8
print(data) #b'\xcc\xda\xd1\xb6'

# 把字节转换为字符串
old = data.decode("gbk")
print(old)  #腾讯

数据类型

  • int,整数类型(整型)
  • bool,布尔类型
  • str,字符串类型
  • list,列表类型
  • tuple,元组类型
  • dict,字典类型
  • set,集合类型
  • float,浮点类型(浮点型)

整型

v1 = 5
print(bin(v1))  # 0b101
# 调用v1(int)的独有功能,获取v1的二进制有多少个位组成。
result1 = v1.bit_length()
print(result1)  # 3

v2 = 10
print(bin(10))  # 0b1010
# 调用v2(int)的独有功能,获取v2的二进制有多少个位组成。
result2 = v2.bit_length()
print(result2)  # 4

在项目开发中经常会出现一些 "字符串" 和 布尔值 转换为 整型的情况
# 布尔值转整型
n1 = int(True)  # True转换为整数 1
n2 = int(False) # False转换为整数 0

# 字符串转整型
v1 = int("186",base=10) # 把字符串看成十进制的值,然后再转换为 十进制整数,结果:v1 = 186
v2 = int("0b1001",base=2) # 把字符串看成二进制的值,然后再转换为 十进制整数,结果:v1 = 9 (0b表示二进制)
v3 = int("0o144",base=8)  # 把字符串看成八进制的值,然后转换为 十进制整数,结果:v1 = 100 (0o表示八进制)
v4 = int("0x59",base=16)  # 把字符串看成十六进制的值,然后转换为 十进制整数,结果:v1 = 89 (0x表示十六进制)

# 浮点型(小数)
v1 = int(8.7) # 8

布尔类型

在以后的项目开发中,会经常使用其他类型转换为布尔值的情景,此处只要记住一个规律即可
【整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False】
【其他均为True】

如果在 `if` 、`while` 条件后面写一个值当做条件时,他会默认转换为布尔类型,然后再做条件判断
if 0:
	print("太六了")
else:
  print(999)	#999

字符串类型

1、判断字符串是否以 XX 开头?得到一个布尔值
v1 = "腾讯科技,优图实验室"
result = v1.startswith("腾讯科")
print(result)	# True

# 案例
v1 = input("请输入住址:")

if v1.startswith("北京市"):
	print("北京人口")
else:
	print("非北京人口")

2、判断字符串是否以 XX 结尾?得到一个布尔值
v1 = "腾讯科技,优图实验室"
# True
result = v1.endswith("实验室")

print(result)   # 值为True

# 案例
address = input("请输入地址:")

if address.endswith('村'):
	print("农业户口")
else:
	print("非农户口")

3、判断字符串是否为十进制数?得到一个布尔值
v1 = "991540698"
result = v1.isdecimal()
print(result)   #True

# 案例,两个数相加
v1 = input("请输入第一个值:")
v2 = input("请输入第二个值:")
if v1.isdecimal() and v2.isdecimal():
    data = int(v1) + int(v2)
    print(data)
else:
    print("请正确输入数字!")

4、去除字符串两边的 空格、换行符、制表符,得到一个新字符串
msg = " H e ll o啊,树哥 "
data = msg.strip()
print(data) # 将msg两边的空白去掉,得到"H e ll o啊,树哥"

msg = " H e ll o啊,树哥 "
data = msg.lstrip()
print(data) # 将msg左边的空白去掉,得到"H e ll o啊,树哥 "

msg = " H e ll o啊,树哥 "
data = msg.rstrip()
print(data) # 将msg右边的空白去掉,得到" H e ll o啊,树哥"

补充:去除 空格、换行符、制表符
# 案例
code = input("请输入4位验证码:") #  FB87 
data = code.strip()
if data == "FB87":
	print('验证码正确')
else:
	print("验证码错误")

5、字符串变大写,得到一个新字符串
msg = "my name is oliver queen"
data = msg.upper()

print(msg) # my name is oliver queen
print(data) # 输出为:MY NAME IS OLIVER QUEEN


# 案例
code = input("请输入4位验证码:")  # FB88   fb88
value = code.upper()  # FB88
data = value.strip()  # FB88

if data == "FB88":
    print('验证码正确')
else:
    print("验证码错误")

# 注意事项
"""
code的值"fb88 "
value的值"FB88 "
data的值"FB88"
"""

6、字符串内容替换,得到一个新的字符串
# 案例
video_file_name = "腾讯科技.mp4"

new_file_name = video_file_name.replace("mp4","avi") 

final_file_name = new_file_name.replace("科技","创新") 
print(video_file_name)
print(new_file_name)
print(final_file_name)

char_list = ["云原生", "大数据", "云计算", "人工智能"]
content = input("请输入评论信息:")
for item in char_list:
  content = content.replace(item,"大圣")
print(content)

7、字符串切割,得到一个列表
data = "腾讯科技|root|991540698@qq.com"
result = data.split('|')
print(data)
print(result)

info = "腾讯,root"
user_list = info.split(',')
# user_list[0]
# user_list[1]
user = input("请输入用户名:")
pwd = input("请输入密码:")

if user == user_list[0] and pwd == user_list[1]:
  print("系统登录成功")
else:
  print("用户名或密码错误")

#应用场景
file_path = "xxx/xxxx/xx.xx/xxx.mp4"

data_list = file_path.rsplit(".",1) # ["xxx/xxxx/xx.xx/xxx","mp4"]
data_list[0]
data_list[1]

8、字符串转换为字节类型
data = "腾讯"  # unicode,字符串类型

v1 = data.encode("utf-8")  # utf-8,字节类型
v2 = data.encode("gbk")  # gbk,字节类型

print(v1)  # b'\xe5\xab\x82 \xe5\xad\x90'
print(v2)  # b'\xc9\xa9 \xd7\xd3'

s1 = v1.decode("utf-8") #
s2 = v2.decode("gbk") #
print(s1)
print(s2)


9、将字符串内容居中、居左、居右展示
v1 = "王老汉"
data = v1.center(21, "-")
print(data) #---------王老汉---------

data = v1.ljust(21, "-")
print(data) # 王老汉------------------

data = v1.rjust(21, "-")
print(data) # ------------------王老汉

10、帮助你填充0
# data = "alone"
# v1 = data.zfill(10)
# print(v1)   #00000alone

# 应用场景:处理二进制数据
data = "101" # "00000101"
v1 = data.zfill(8)
print(v1) # "00000101"

字符串实践练习

# 1.写代码实现判断用户输入的值否以 "al"开头,如果是则输出 "是的" 否则 输出 "不是的"
"""
data = input("请输入内容:")
if data.startswith("al"):
    print("是的")
else:
    print("不是的")
"""

# 2.写代码实现判断用户输入的值否以"Nb"结尾,如果是则输出 "是的" 否则 输出 "不是的"
"""
data = input("请输入内容:")
if data.endswith("al"):
    print("是的")
else:
    print("不是的")
"""

# 3.将 name 变量对应的值中的 所有的"l"替换为 "p",并输出结果
"""
name = "alex"
result = name.replace("l",'p')
print(result)
"""

# 4.写代码实现对用户输入的值判断,是否为整数,如果是则转换为整型并输入,否则直接输出"请输入数字"
"""
data = input("请输入内容:")
if data.isdecimal():
    data = int(data)
    print(data)
else:
    print("请输入数字")
"""

# 5.对用户输入的数据使用"+"切割,判断输入的值是否都是数字?
# 提示:用户输入的格式必须是以下+连接的格式,如 5+9 、alex+999
"""
data = input("请输入内容:")
num_list = data.split("+", 1)  # ["5","9"]
if num_list[0].isdecimal() and num_list[1].isdecimal():
    print("都是整数")
else:
    print("不全是整数")
"""
# 6. 写代码实现一个整数加法计算器(两个数相加)
# 需求:提示用户输入:5+9或15+9或5+29,计算出两个值的和(提示:先分割再转换为整型,再相加)
"""
data = input("请输入内容:")
num_list = data.split("+", 1)  # ["5","9"]
if num_list[0].isdecimal() and num_list[1].isdecimal():
    v1 = int(num_list[0])
    v2 = int(num_list[1])
    result = v1 + v2
    print(result)
else:
    print("用户输入有问题")
"""

# 7.写代码实现一个整数加法计算器(两个数相加)
# 需求:提示用户输入:5 +9或5+ 9或5 + 9,计算出两个值的和(提示:先分割再去除空白、再转换为整型,再相加)
"""
data = input("请输入内容:")
num_list = data.split("+", 1)  # ["5","9"]
v1 = int(num_list[0].strip())  # "5"  "5 "  " 5 "
v2 = int(num_list[1].strip())
result = v1 + v2
print(result)
"""

# 8.补充代码实现用户认证。
# 需求:提示用户输入手机号、验证码,全都验证通过之后才算登录成功(验证码大小写不敏感)
"""
import random

code = random.randrange(1000, 9999)  # 生成动态验证码,整型
code = str(code)  # 字符串类型
msg = "欢迎登录Python系统,您的验证码为:{},手机号为:{}".format(code, "15131266666")

phone = input("请输入手机号:")
data = input("请输入验证码:")  # 字符串类型
if code.upper() == data.upper() and phone == "15131266666":
    print("登录成功")
else:
    print("登录失败")
"""

# 9.补充代码实现数据拼接
"""
data_list = []
while True:
    hobby = input("请输入你的爱好: (Q/q退出):")
    if hobby.upper() == 'Q':
        break
    data_list.append(hobby)
result = "、".join(data_list)
# print("你的爱好为:"+result)
print("你的爱好为:%s" %result)
"""
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 23:15:46  更:2021-07-28 23:16:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:24:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计