Python第二
今日内容概要
基本运算符
流程控制
字符编码
理论特别多、结论特别少
文件处理
今日内容详细
基本运算符
1.算数运算符
x = 1
y = 5
res = x + y #加
res1 = x - y #减
res2 = x * y #乘
res3 = x / y #除
2.比较运算符
a = 1
b = 10
a > b
a < b
a >= b
a <= b
a == b
#一个等号是赋值符号 两个等号才是真正的等号
3.赋值运算符
username = 'jason'
4.增量赋值
x = 10
x = x + 1 # x += 1
x = x - 1 # x -= 1
x = x * 1 # x *= 1
x = x / 1 # x /= 1
5.解压赋值
name_list = [111,222,333,444,555]
a = name_list[0]
b = name_list[1]
c = name_list[2]
d = name_list[3]
e = name_list[4]
# 链式赋值操作
#a,b,c,d,e = name_list
# print(a,b,c,d,e)
# 左右两侧数量要一致(列表有五个元素那么赋值符号的左边就应该有五个变量名)
# res1,res2 = name_list # too many values to unpack (expected 2)
# res1,res2,res3,res4,res5,res6 = name_list # not enough values to unpack (expected 6, got 5)
# ret,*a = name_list # *号可以将多余的元素统一组织成列表赋值给后面的变量名
# print(ret,a) # 111 [222, 333, 444, 555]
6.交叉赋值
m = 666
n = 999
#将m和n的值互换
res = m
m = n
n = res
print(m,n)
# 交叉赋值
m,n = n,m
print(m,n)
7.解压赋值
a = 100
b = a
c = a
d = a
# 简写
a = b = c = d = 100
8.逻辑运算
and 与
or 或
not 非
and链接多个条件必须多个条件都为true结果才为true,只要有一个是false那么结果就是false
or链接多个条件只需要有一个条件为true结果就为true,只要所有的都是false那么结果才是false
# and,or,三者如果混用时,是存在优先级之分的,但在日常开发中我们无需记优先级,应该使用()来区分优先级、提升程序的可读性
9.成员运算
>>>'lili' in ['jack','tom','robin']
false
>>>'lili' not in ['jack','tom','robin']
true
10.身份运算
#1.id相同 内存地址必定相同,意味着type和values必定相同
#2.value相同type肯定相同,但是IP不一定相同,如下
>>> x='Info Tony:18'
>>> y='Info Tony:18'
>>> id(x),id(y) # x与y的id不同,但是二者的值相同
(4327422640, 4327422256)
>>> x == y # 等号比较的是value
True
>>> type(x),type(y) # 值相同type肯定相同
(<class 'str'>, <class 'str'>)
>>> x is y # is比较的是id,x与y的值相等但id可以不同
False
流程控制
"""
**********************************************
python中是通过代码的缩进来表示代码的从属关系
if 条件1:
代码1
代码2
这里的代码1和代码2缩进了,所以它们是属于if的,它们能不能执行完全取决于if
冒号后面才可以有子代码,并且多个子代码必须是相同的缩进量
**********************************************
"""
if 条件1: # 如果条件1的结果为True,就依次执行:代码1、代码2,......
代码1
代码2
......
elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
代码3
代码4
......
elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......
代码5
代码6
......
else: # 其它情况,就依次执行:代码7、代码8,......
代码7
代码8
......
# 注意:
# 1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
# 2、条件可以是任意表达式,但执行结果必须为布尔类型
# 在if判断中所有的数据类型也都会自动转换成布尔类型
# 2.1、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
# 2.2、其余均为True
while循环
while 条件:
代码1
代码2
代码3
……
#while的运行步骤:
# 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、# 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
while True:
# 1 先获取用户的用户名和密码
username = input('请输入您的用户名>>>:')
password = input('请输入您的密码>>>:')
# 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
if username == 'jason' and password == '123':
print('登录成功')
else:
print('用户名或者密码错误')
# 用户输入了正确的用户名和密码之后 应该结束循环
# while True:
# # 1 先获取用户的用户名和密码
# username = input('请输入您的用户名>>>:')
# password = input('请输入您的密码>>>:')
# # 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
# if username == 'jason' and password == '123':
# print('登录成功')
# # 应该结束掉while循环
# break # break只能结束掉它所属的那一个while循环
# else:
# print('用户名或者密码错误')
# print('我终于出来啦')
# while True:
# # 1 先获取用户的用户名和密码
# username = input('请输入您的用户名>>>:')
# password = input('请输入您的密码>>>:')
# # 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
# if username == 'jason' and password == '123':
# print('登录成功')
# while True:
# cmd = input('亲爱的贵宾有什么可以帮助您的>>>:')
# if cmd == 'exit':
# break # break只能结束掉它所属的那一个while循环
# print('真正帮您执行:%s'%cmd)
# break
# else:
# print('用户名或者密码错误')
# print('我终于出来啦')
# 当你想一次性结束多层while嵌套 你可以考虑使用标志位
# flag = True
# while flag:
# # 1 先获取用户的用户名和密码
# username = input('请输入您的用户名>>>:')
# password = input('请输入您的密码>>>:')
# # 2 拿着用户名和密码去数据库里面比对select * from userinfo where username=username and password=password;
# if username == 'jason' and password == '123':
# print('登录成功')
# while flag:
# cmd = input('亲爱的贵宾有什么可以帮助您的>>>:')
# if cmd == 'exit':
# flag = False
# print('真正帮您执行:%s'%cmd)
# else:
# print('用户名或者密码错误')
# print('我终于出来啦')
# 用while循环打印1,2,3,4,5,6,7,9
num = 1
while num < 10:
# 如果num是8就不打印
if num == 8:
num += 1
continue # 结束它所属的那一个while的本次循环直接开始下一次循环
print(num)
num += 1
"""
break不给机会了 直接结束
continue再给一次机会 重新开始
"""
for循环
for 变量名 in 可迭代对象: #此时只需知道可迭代对象可以是字符串\列表\字典
代码一
代码二
#例一
for item in['a','b','c']:
print(item)
# 运行结果
a
b
c
# 参照例1来介绍for循环的运行步骤
# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
# 步骤3: 重复以上过程直到列表中的值读尽
数据类型及内置方法
在Python中不同的数据类型之间默认是无法直接做操作的
整型和浮点型本身没有其他多余的内置方法
# ret = '666' + 3
# print(ret) # 在python中不同的数据类型之间默认是无法直接做相互操作的
# res = int('666') + 3 # int('666') = 666
# print(res)
# res = int('666.6') + 3 # 报错
# print(res)
# res = float('666.6') + 3
# print(res)
# res = int('abc') + 3 # 报错
# print(res)
while True:
num = input('>>>:')
# 判断用户输入的字符串是否是纯数字
if num.isdigit():
num = int(num)
res = num + 10
print(res)
else:
print('必须输入纯数字')
# 字符串
# n = 111
# f = 11.11
# l = [1,2,3,4]
# d = {'username':'jason'}
# res1 = str(n)
# res2 = str(f)
# res3 = str(l)
# res4 = str(d)
# print(res1,res2,res3,res4) # 任何数据类型都可以转字符串
s = 'hello jason you are very handsome!!! 666 NB'
# 1 索引取值
# print(s[0])
# print(s[0:8]) # 顾头不顾尾
# print(s[0:8:2]) # 步长
# print(s[-1:-5:-1]) # 了解
# 2 长度
# print(len(s))
# 3 成员运算
# print('666' in s)
# 4 移除首位的空白
# username = input('》》》:').strip()
# if username == 'jason':
# print('老板好')
# res = '$$jas$on$$'
# print(res.strip('$')) # jas$on
# 5 切割
user_info = 'jason|123|NB|study'
# res = user_info.split('|')r
# print(res) # ['jason', '123', 'NB', 'study']
# res = user_info.split('|',maxsplit=1) # 从左往右
# print(res) # ['jason', '123|NB|study']
# res = user_info.rsplit('|',maxsplit=1) # 从右往左
# print(res) # ['jason|123|NB', 'study']
猜年龄题
while x == 0:
if n < 3:
username = input('exit退出\n请输入用户名:')
if username == "exit":
break
pwd = input("请输入密码:")
if username == 'x' and password == '900876':
x = 0
y = 0
import random
def game():
w = 1
while w == 1:
n = 1
n2 = 6
age = random.randint(0,10)
while True:
if n < n2:
age = input("第%s猜:"%n).str:
if age.lsdigit() == False:
print(int("你确定吗?")
elif int(age) < age:
print("第%s次猜小了"%n)
n += 1
elif int(age) > age:
print("第%s次猜大了"%n)
n += 1
else:
r = input("第%s次猜对了!!!\n按y再玩一次\n按n退出游戏\n输入exit退出程序"%b).strip()
if r == "n":
break
elif r == "n":
z = 0
break
elif d == "exit":
global x
z = 0
x = 1
break
else:
if n2 == 11:
print("你总算猜对了!")
elif n2 == 16:
print("你是认真的吗!")
elif n2 == 21:
print("不会有人%s次都猜不出吧!\n不会吧!\n不会吧!!\n不会吧!!!"%(b-1))
elif n2 > 21:
print("别玩了!你够了!!")
d = input("你已经猜错%s次了,按y增加五次机会"%(b-1))
if d == "y":
n2 += 5
continue
else:
x = 1
z = 0
break
else:
print("账号密码错误")
n += 1
else:
c = input("你已输错三次,按y在获得三次机会,其他退出。")
if c == "y":
n = 0
else:
break
Python第二的更多相关文章
- selenium webdriver (python) 第二版
前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...
- 简学Python第二章__巧学数据结构文件操作
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- Python第二十四天 binascii模块
Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...
- Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块
Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...
- Python第二十六天 python装饰器
Python第二十六天 python装饰器 装饰器Python 2.4 开始提供了装饰器( decorator ),装饰器作为修改函数的一种便捷方式,为工程师编写程序提供了便利性和灵活性装饰器本质上就 ...
- Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助
Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助 目录 Pychar ...
- python第二十九课——文件读写(复制文件)
自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb ...
- python第二十九课——文件读写(读取读取中文字符)
演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱 ...
- 孤荷凌寒自学python第二十九天python的datetime.time模块
孤荷凌寒自学python第二十九天python的datetime.time模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.time模块是专门用来表示纯时间部分的类. ...
- 孤荷凌寒自学python第二十八天python的datetime.date模块
孤荷凌寒自学python第二十八天python的datetime.date模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.toordinal() 此方法将访问从公元1年1月1日至当 ...
随机推荐
- JavaCV的摄像头实战之四:抓图
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<JavaCV的摄像头实战> ...
- [HZOI] 山海经 题解
0.题目大意 给出一个序列,每次查询一个区间的最大子段和的端点和值.序列长度 \(n \le 10^{5}\) . 1.思路 显然应该使用线段树.题目要求每次求一个区间的最大子段和,那么在线段树节点中 ...
- FastDFS文件同步
FastDFS同步相关文件: a)10.100.66.82_23000.mark 内容如下: binlog_index=0 binlog_offset=1334 need_sync_old=1 syn ...
- 如何在pyqt中通过OpenCV实现对窗口的透视变换
窗口的透视变换效果 当我们点击UWP应用中的小部件时,会发现小部件会朝着鼠标点击位置凹陷下去,而且不同的点击位置对应着不同的凹陷情况,看起来就好像小部件在屏幕上不只有x轴和y轴,甚至还有一个z轴.要做 ...
- python pyautogui
使用pyautogui随机调用图库里的一张照片设置为壁纸,每天定时执行 代码 import time import pyautogui import random pyautogui.keyDown( ...
- Pycharm 实现保存时修正格式(format_on_save)
前言 VSCODE是近年来备受欢迎的轻量级代码编辑器,有一项非常实用功能--保存时修正代码格式(formatonsave) Pycharm作为一款IDE,虽然本身不具备此功能,但通过几个并不复杂的设置 ...
- Uwl.Admin.Core开源框架(三) 使用RabbitMQ
Uwl.Admin.Core中使用RabbitMQ消息队列: 本文负责讲解RabbitMQ的使用 Uwl.Admin.Core使用的技术有: *.Async和Await 异步编程 *.Reposito ...
- Atcoder ARC-061
ARC061(2020.7.10) A 暴力 \(dfs\) 即可. B 考虑统计以每个点为矩阵中心的答案,显然一个黑点只会影响周围九个黑点,使用 \(map\) 来记录这个值,每次修改修改一下答案数 ...
- asp.net core 中的各种路径
1.获取完整网址URL 方法一:先引用"using Microsoft.AspNetCore.Http.Extensions;",然后直接用"Request.GetDis ...
- android 安装gcc环境
看到了一篇关于Android上利用终端来使用gcc编译C/C++源程序的文章,我感到无比兴奋,所以立刻将我自己的安装过程记下来.那个后记也很有用的. gcc编译源代码需要创建临时文件,而gcc又只能安 ...