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日至当 ...
随机推荐
- 阅读笔记——长文本匹配《Matching Article Pairs with Graphical Decomposition and Convolutions》
论文题目:Matching Article Pairs with Graphical Decomposition and Convolutions 发表情况:ACL2019 腾讯PCG小组 模型简介 ...
- python28day
内容回顾 classmethod: 用不到对象,并且要用类名的时候 装饰一个方法,被装饰的方法会变成类方法 staticmethod: 把一个函数放到类里,变成一个静态方法 这个方法既用不到对象,也用 ...
- RPC调用获取参数值
本文以 RPC 获取百度登录password加密值为例: 涉及的知识点有: 1.js调试,寻找加密代码 2. 浏览器本地代码替换 3. js自执行函数 4. 插桩 5. RPC 远程调用 6. pyt ...
- mongodb在插入数据环节避免数据重复的方法(爬虫中的使用update)
mongo 去重 import pymongo client = pymongo.MongoClient() collection=client.t.test # collection.insert( ...
- VC++ 启用内存泄露检测
_CrtDumpMemoryLeaks()就是检测从程序开始到执行该函数进程的堆使用情况,通过使用_CrtDumpMemoryLeaks()我们可以进行简单的内存泄露检测. #include &quo ...
- 布客·ApacheCN 编程/后端/大数据/人工智能学习资源 2020.11
公告 我们始终与所有创作者站在一起,为创作自由而战.我们还会提供一切必要的技术支持. 我们全力支持科研开源(DOCX)计划.希望大家了解这个倡议,把这个倡议与自己的兴趣点结合,做点力所能及的事情. 我 ...
- AT2163 [AGC006B] Median Pyramid Easy
需要一点灵感的题目. 可以发现这样一个事情,当三个数中有两个数相同时,中为数一定是这两个相同的数. 基于这个观察,我们想让每一行都存在这样两个相同的两个数,就一定能保证第一层的值为 \(x\) 了. ...
- web项目报405错误
错误:报405错误 原因:405错误是由于servlet类继承了HttpServlet,但是没有重写里面的doGet()和doPost()方法导致的,没有重写,就会访问父类,及原生的HttpServe ...
- ExcelPackage 使用說明
1.使用方法 public IActionResult Excel() { string sWebRootFolder = _hostingEnvironment.WebRootPath; strin ...
- 为什么内部类调用的外部变量必须是final修饰的?
感谢原文:https://blog.csdn.net/u010393325/article/details/80643636 因为生命周期的原因.方法中的局部变量,方法结束后这个变量就要释放掉,fin ...