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日至当 ...
随机推荐
- NextCloud + python API
NextCloud库地址:https://github.com/matejak/nextcloud-API 安装库依赖: 安装库: 建议在虚拟环境下使用 使用示例: # -*- coding: utf ...
- 详解git fetch与git pull的区别(实操)
感谢原文作者:R-H-R 原文链接:https://blog.csdn.net/riddle1981/article/details/74938111 git fetch和git pull都可以将远端 ...
- JVM学习八-(复习)年轻代、老年代、永久代
Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象,如下图所示: 在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old).新生代 ...
- Jackson转换为Collection、Array
1. Jackson转化为Array 注意的地方就是实体类一定要有无参的构造方法,否则会报异常 //com.fasterxml.jackson.databind.exc.InvalidDefiniti ...
- #pragma mark指令
1.#pragma mark指令的使用 功能:简单来说就是对代码的分组,方便代码查找和导航用的 它们告诉Xcode编译器,要在编辑器窗格顶部的方法和函数弹出菜单中将代码分隔开.一些类(尤其是一些控制器 ...
- css最终章之浮动、定位、溢出属性处理、z-index属性、透明度
上期内容回顾 CSS简介 # 主要就是给HTML标签添加样式 # 固定语法结构 选择器 {属性名1:属性值;属性名2:属性值} 三种引用方式 1.link标签引入外部css文件(最正规) 2.HTML ...
- shell基础——数组
定义数组 #小括号,空格 arr=(v1 v2 v3) arr=(`ls`) 打印数组 echo ${arr[0]} #下标从0开始 echo ${arr[*]} #整个数组 echo ${arr[@ ...
- Hadoop完全分布式的配置
选取机器sam01作为主节点,并进行分布式文件的配置 1.进入Hadoop配置文件路径/usr/local/hadoop/etc/hadoop(这里我把Hadoop安装在/usr/local目录下) ...
- Oracle用户创建、删除和授权等方法总结
一.查看用户及权限 1.查询所有用户: 1.1.查看所有用户基本信息 select * from all_users; 1.2.查看所有用户相信信息 select * from dba_users; ...
- [TJOI2013] 奖学金
代码: #include<bits/stdc++.h> using namespace std; long long n,c,ff,ans; long long suma[200010], ...