Python大全
三、问题
1、open文件打不开,报错?
open()文件地址后面加上:
,’rt‘:文件格式是TXT格式,纯英文,可以完美打印;纯中文,报错。
,‘rb’:文件格式是二进制,纯中文,打印乱字符,并且前面会加上b’打印内容’。纯英文,打印没有问题。
,encoding=‘UTF-8’:转换中文格式,打印中文英文,都是完美输出。
,eincoding=‘gbk’:中文编码, Mac 或 Linux 系统浏览器中多使用该编码格式。
注意:不建议使用win系统记事本,建议使用可以控制编码的notepad++或sublime text。
python安装
python官网:https://www.python.org/downloads/
一、Python安装步骤:
2个绿色箭头:
第一个是默认安装路径。
第二个是可选择自定义安装路径。
最后打钩,是加入电脑的环境变量里面。(控制面板——系统——高级系统设置——高级——环境变量(用户变量和系统变量))
翻译:
Optional Featuresks 可选的一些特点
Documentation 文档
pip:python的包管理器
翻译:
Advanced Options 升级版本的选项
下面选项默认选择是什么,就是什么,不用改动。
Customize install location 自定义安装路径
安装成功。
安装成功后,打开环境变量查看,PATH里面又会python路径。
DLLs 里面内置的一些库文件
Doc 文档,里面文件打开后,是帮助说明,内置说明。
include 包含的一些依赖,都是一些.h文件。
Lib类似于图书馆,系统自带的(内置库)。
libs 运行时所运行的一些东西。
Scriptspip(包管理器 :pip.exe——外置库,增加、删除功能)
安装问题总结
1、Runtime error 缺失程序
windows系统缺少补丁。
2、Python识别不出
环境变量配置
有时候配置在用户变量不好使,需要配置在系统变量。
配置方法:打开环境变量——Path打开——+分号+python安装路径——+pip安装路径
注:python和pip是两个独立的,pip不能再python环境下运行,需要先exit()退出。
3、卸载重装
python安装目录文件夹删除干净,再重装。
4、升级pip
1、使用pip查看(管理的包有哪些)
2、尝试使用pip安装requests包和redis包
3、将安装的包输出到创建的文档中
4、卸载包
5、查看包
(上面这些步骤请查看下篇DOS命令学习)
cmd——pip list——python -m pip install --upgrade pip(输入pip list时候,会显示这一串命令,复制即可)
pip install requests(包名)——(有升级包会升级,没有会显示pip包的安装路径:默认d:\chengxu\python3.6\lib\site-packages (2.24.0))
上面解释(pip install 包名)——命令
打开DOS窗口(WIN+R——输入cmd)
默认是在当前的用户下。
二、DOS命令(学习)
打开DOS窗口(WIN+R——输入cmd)
默认是在当前的用户下。
1、cd 切换目录
cd… 切换到当前目录的上层
举例:
C:\Users\67015>cd…
C:\Users>
cd指定的目录路径
想要跳到另一个盘符文件,首先输入需要盘符。
举例:
C:\Users>d:
d:\chengxu\Python3.6>
接下来可以使用cd指定文件
2、dir(浏览当前文件夹下所有文件)
3、mkdir空格+名字(创建目录)
4、rmdir空格+名字 (删除目录)
5、ipconfig 查看IP地址
6、ping空格+IP地址(测试网络连接)
7、exit() 退出当前环境
pip 查看pip可做的一些命令
举例:
pip -V查看pip版本
pip list 列出管的包邮哪些
pip install(包管理器名称) 安装这个包,如果有,就不会安装。
pip uninstall(包管理器名称) 卸载这个包。
pip install(包管理器名称==版本号) 如果不指定版本号,系统默认安装最新版。
pip freeze > 文档名 将项目依赖的包输出到指定新建的文档。
pip install -r 文档名 使用pip安装文档名中依赖的文件
三、安装解释器
1、解释型和编译型区别:
python是一门解释型的编程语言,因此它具有解释型语言的运行机制。
计算机程序,其实就是一组计算机指令集,能真正驱动机器运行的是机器指令,但让普通开发者直接编写机器指令是不现实的,因此就出现了计算机高级语言。高级语言允许使用自然语言(通常就是英语)来编程,但高级语言的程序最终必须被翻译成机器指令来执行。
编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包含机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。
编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行。
有些程序编译结束后,还可能需要对其他编译好的目标代码进行链接,即组装两个以上的目标代码模块生成最终的可执行程序,通过这种方式实现低层次的代码复用。
因为编译型语言是一次性编译成机器码的,所以可以脱离开发环境独立运行,而且通常运行效率高。但因为编译型语言的程序被编译成特定平台上的机器码,因此编译生成的可执行程序通常无法移植到其他平台上运行,如果需要移植,则必须将源代码复制到特定平台上,针对特定平台进行修改,至少需要采用特定平台上的编译器重新编译。
现有的 C 、C++、Objective-C、Pascal 等高级语言都属于编译型语言。
解释型语言是指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。
Python3.6.5 window macos linux
可以这样认为,每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释型语言有一个优势,就是跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器都负责将源程序解释成特定平台的机器指令。解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。
2、安装python解释器写代码(第三方程序辅助)
sublimetext软件官网:https://www.sublimetext.com/3
安装方法:
很简单,自定义安装路径——勾选添加浏览内容菜单——继续,结束
Python正式学习
函数
-自定义函数def
de f<函数名> (参数列表):
<函数语句>
return <返回值>
其中参数和返回值不是必须的
1、python源文件:xxx.py (扩展名是py)
print('hello world')
cmd——进去python环境——python空格+源文件——执行
cmd窗口:交互式
优点:所见即所得
缺点:无法保存,代码写的长的话无法维护
退出交互式:exit()
sublime:源文件(统一编辑)
工具:sublime pycharm
优点:可以长期保存源程序,便于维护代码。
如果代码比较长、多,快速格式化。
代码的执行顺序: ****从左到右,从上到下
2、源文件写完后如何打印?
cmd——cd空格+源文件地址(跳转到所写代码目录)——python 源文件名(开始打印)
一、变量
变量=容器→放东西、赋值
(可存放类型:字符串(“hello”)、整型(5,9,1)、浮点数(12.3, 3.9, 9.9)、布尔类型(True,False)、列表list、字典dict、set列表。)
变量 和 常量
常量: 固定的值,值是不能发生改变
变量: 里面盛放的值随时可以发生改变。(实际上就是给内存要空间。)
赋值时候,数字不用引号,汉字需要引号
举例:money=99.9
person=‘小明’
**弱类型:**声明的变量赋什么值就是什么类型的。
etype(变量名)——返回该变量的类型
#举例
money=9.9
print(money,type(money))
1、变量的命名规则:
- 标识符(age=18)
由字母、数字 _,不能以数字开头
- 严格区分大小写
不能Python的关键字
- 如何查看python关键字?
cmd——python(进入环境)——import keyword(导入一个包)——print(keyword.kwlist)
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif','else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
建议:
- **驼峰式:**getName
如果一个名字是由多个单词组成的,除第一个单词之外以后的每个单词的首字母大写。
类:GetName
如果定义类名,每个单词的首字母大写
- 下划线式:
Python 中变量的,函数命名:
get_name(python推荐)
2、Python函数学习
- print()内置函数:
#1.用法
print('hello world!')
name = '小白'
print(name)
#输出结果
hello world
小白
#2.用法:print(name,age,gender)
name='小白'
age =18
gender ='boy'
print(name,age,gender) #sep默认的分割是空格
#输出结果
小白,18,boy
print(name,age,gender,sep='*')
#输出结果
小白*18*boy
#sep默认print内每一个逗号之间都有一个空格,可以为sep赋值特殊符号,输出后逗号就会变成赋值的特殊符号。
#3.用法:print(value,value,value,...,sep='',end='\n')
print(name,age,gender,sep='-')#sep='*' sep='$' sep='-'
- 转义字符:
\n(换行)
#1.用法
print('hello\nkitty')
#输出结果
hello
kitty
#2.用法
print('AAA')
print('BBB')
print('CCC')
#输出结果
AAA
BBB
CCC
print('AAA',end='') #'AAA\n' --->'AAA'
print('BBB',end='') #'BBB\n' --->'BBB'
print('CCC',end='') #'CCC\n' --->'CCC'
#输出结果
AAABBBCCC
#\n默认在每一个print括号最后都会给你换行,所以,你的每一个print()打印完后,都是独立一行出现,看2.用法第一输出结果。
而print()最后加end=’’,表达的意思是打印结束的结果什么都没有,也没有换行,所以打印的结果都是连在一起。
\r(回车)
print('生活原来如此美好\r')
\n 和 \r都是特殊控制符,这些都是来自于老式电传打字机的功能。
\n是 newline 开个新行。
\r 是carriage return,打印头回到行首,如果没有\n 就直接\r ,那么这行就会被覆盖打印了,现在各个操作系统处理上不太一样,在不同的终端显示上也不太相同。
在idle 中是不能实现 \r 的功能的。
意思就是说,一切以pycharm里为准,idle 里实现不了\r 的功能。
而\r 的功能就是让光标回到行首,覆盖之前的内容,所以就产生了“我是python”覆盖了“你好!”的结果。
\t (制表符)
print('你好!\n','\t今天天气真不错')
#输出结果
你好!
今天天气真不错 #\t制表符一般空4个字符
’ "(引号的使用规则)
print('小明说:"好想出去玩啊!"')
#输出结果
小明说:"好想出去玩啊!" #单引号套双引号
print("小明说:'好想出去玩啊!'")
#输出结果
小明说:'好想出去玩啊!' #双引号套单引号
print('小明说:\'好想出去玩啊!\'')
#输出结果
小明说:'好想出去玩啊!' #单引号套单引号,需要加\。=等同于 #双引号套单引号
print("小明说:\"好想出去玩啊!\"")
#输出结果
小明说:"好想出去玩啊!" #双引号套双引号,需要加\。=等同于 #单引号套双引号
r’’ (raw 原样输出字符串的内容,即使有转义字符也不会转义)
print(r'hello\py\nom')
#输出结果
hello\py\nom
’ 、’’ ‘’、’’'三种引号的作用
# pyhton: 命名的时候,名字是大写的。——默认是常量不变。
NAME = 'Jake'
print(NAME)
# 字符串:字符串表示:'' 、""、'''
#'''——三引号
作用1:保留格式的字符串使用
作用2:作为注释使用(多行注释)
#井号——单行注释:给你的程序员增加代码的可读性。python跳过此行代码,不予解释。
message ='[淘宝]你正在使用验证码登录,验证码是:8996,涉及个人的账户安全,请保密。'
print(message)
message ='''
[淘宝]
你正在使用验证码登录,
验证码是:8996,
涉及个人的账户安全,请保密。
'''
print(message)
+加号用法
#’+'符号拼接,只能是 字符串 + 字符串 ——没问题
字符串 + int ——报错(TypeError)
而用%s,就没有报错的问题
person ='大圣哥'
address ='北京市海淀区中关村志成科技大厦4层'
phone ='15866648888'
print('订单的收件人是:'+person+'收货地址是:'+address+'联系方式:'+phone)
#输出结果
订单的收件人是:大圣哥收货地址是:北京市海淀区中关村志成科技大厦4层联系方式:15866648888.
#这种方式太麻烦,很容易引号用错位置
*******************************************************************************************************
print('订单收件人是:%S,收货地址:%S,商品数量是:%S'(person,address,phone)) #这行代码不能复制,复制打印不出来!!!
#输出结果
订单的收件人是:大圣哥,收货地址是:北京市海淀区中关村志成科技大厦4层,商品数量是:15866648888
%s str(int) —> (int—>str) 强制类型的转换
%s—>str简写
注意:s一定不能大写,不能会报错!!!
age=18
print=(年龄是:+str(age)') 'aaa' int--->str
print('年龄是:%s' % age) # %s--->str简写 底层:str(age)---》'18'
isMarry=False #布尔:True ,False
print('结婚否?回答:%s' % isMarry) #str(False)
#输出结果
年龄是:18
年龄是:18
结婚否?回答:False
%d digit 数字(整形)
age=18
print('年龄会死:%d' % age)
#输出结果
年龄会死:18 #结果和%s结果一样
age=18.5 # int(18.5)--->18 强制取整数
print('年龄是:%d' % age)
#输出结果
年龄是:18
%f float(浮点型)
小数点后面的位数 而且是四舍五入
salary=8899.5866
print('我的薪水是:%.2f' % salary) #想要输出结果小数点后保留几位,就改f前面的数字
#输出结果
我的薪水是:8899.59
作业:
movie='大侦探皮卡丘'
ticket=45.89
count=35
total=ticket*count
message('''
电影:%s
人数:%d
单价:%f
总票价:%.1f
''' % (movie,count,ticket,total))
print(message)
#输出结果
电影:大侦探皮卡丘,
人数:35,
单价:45.89,
总票价:1606.2
.format
是一个字符串中的函数 ‘’.format() , 此处的“点”是调用意思。
age=2
s='已经上'
message = '乔治说:我今年{}岁了,{}幼儿园!'.format(age,s)
print(message)
#输出结果
乔治说:我今年2岁了,已经上幼儿园!
input()—>输入流
注意:input键盘输入的都是字符串类型,即使输入500,他也会添加’500’(引号)
name=input()
print(name)
print(type())#检测赋值是什么类型
练习1:
游戏:捕鱼达人
请输入参与游戏者用户名:
请输入密码:
充值:500
…
print('''
*******************
捕鱼达人
*******************
''')
username = input('请输入参与游戏者的用户名:')
password = input('输入密码:')
print('%s请充值才能加入游戏!' % username)
coins = input('请充值:') # 注意:input键盘输入的都是字符串类型,即使输入500,他也会添加'500'(引号)
coins = int(coins)
print('%s充值成功!当前游戏币是:%d' % (username,coins))
练习2:
…
游戏:英雄联盟
角色:***
拥有的装备:***
想购买装备:***
付款金额:***
*** 拥有*装备,花了钱
知识点: input 格式化输出print()
…
print('''
************************
英雄联盟
************************
''')
role = input('请输入角色:')
equipment = input('请输入拥有的装备:')
upgrade_equipment = input('想购买装备:')
pay = input('请输入付款金额:')
# 变量的赋值替换
equipment = upgrade_equipment
print('{}拥有{}装备,购买此装备花了{}钱'.format(role,equipment,pay))
二、Operator 运算符
- 运算符种类:
- 赋值运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
1、赋值运算符
# =
name = 'admin' # 将'admin'的赋值给 变量name
*******************************************************************************************************
#扩展后的赋值符号 += -= *= /= ....
num = 8
num += 5 #num = num + 5 此时+ 数学加号
print(num)
*******************************************************************************************************
a = 'abc'
a = 'ff' #a = a +'ff' 此时'+'就是连接符 包含两个动作:1.连接 2.连接后的结果赋值
print(a)
*******************************************************************************************************
测试:
-=
*=
/=
#只是可以应用在数值,字符串不支持这些符号
2、扩展的算术运算符
** // %
#扩展的算术运算符:** //
a = 8
b = 2
result = a ** b # b次a相乘---->a*a=8*8 , a的b次方
print(result)
result = a // b # 整数,还是a/b,不过结果保留整数
print(result)
*******************************************************************************************************
# %
a = 9
b = 2
result = a % b
print('取余数运算:',result)
#输出结果
取余数运算: 1
3、关系运算符
> < ==
n1 = int(input('请输入第一个数:'))
n2 = int(input('请输入第二个数:'))
#判断n1 与 n2
result = n1 > n2 # 结果False True
print('n1>n2:',result)
result = n1==n2
print('n1==n2:',result)
*******************************************************************************************************
username = input('输入用户名:')
uname = 'admin123'
result = username==uname
result = username !=uname # 如果两者不相等则会返回True,相等则返回 False
print('用户名的验证结果是:',result)
is
# is 用户对象的比较
age = 20
age1 = 20
print(age is age1)
#输出结果
True
4、逻辑运算符
and or not
#and 逻辑与
#or 逻辑或
#not 逻辑非
#逻辑运算符的运算结果也是返回True False
# and ---->只要有一边为False,即为False
'''
左 右
True and True ---->True
True and False ---->False
False and True ---->False
False and False ---->False
or: 或者 ---->只要有一边为真True,结果即为真True
'''
True or True ---->True
True or False ---->True
False or False ---->False
'''
# not
flag = False
result = not flag # not就是取反
print('not --->:',result)
5、位运算符
待补充…
1 0 1 0 #二进制
8 4 2 1 #八进制
1 0 1 1 0 1 #十进制
d=0x 十六进制
三目运算符
if else
a=6
b=5
result = (a+b) if a<b else (b-a)
'''
判断表达式是True还是False
如果是True 则将if前面的内容进行运算,并将结果赋值成result
如果是False 则将else后面的内容进行运算,并将结果赋值成result
'''
print(result)
# 运算符的优先级:
'''
排序:
**
~
+ -(符号运算符)
* / // %
+ - 加减
<< >>
&
^
|
== != > >= < <=
is is not
not
and
or
'''
三、语句
- 条件判断语句
- for循环语句
- 跳转语句
1、条件语句:(判断)
应用场景:
1、用户名和密码登录
2、用户登录验证(看影院信息,判断用户是否登录了,没有登录弹窗口,登录看到信息)
if+else使用
if条件:
条件成立执行的语句
username = 'admin' #没有登录
#password
# python: 判断的变量是'' 0 None 默认是False
# python:如果变量有值'abc','kkkk','yueryu',认为是True
if username: #'admin'!='' True 如果条件运算结果是Ture则进入内层
print('嘿嘿!我登录啦!')
print('----------')
*******************************************************************************************************
'''
if num:
print('......')
等效:
if num!=0:
print('......')
'''
练习:
#如果年龄大于18 并且 输入le姓名,则打印×××今年×××岁
age = int(input('输入年龄:'))
username = input('输入用户名:')
if age>18 and username: #Ture and False --->False
print('{}今年{}岁了!'.format(username,age))
print('---game over---')
'''
if 判断的第二种使用方式:
if 表达式(条件):
条件成立
else:
条件不成立执行的语句
注意:添加缩进 一个Tab键
'''
'''
需求:
消消乐
lv1
lv2
lv1: 免费玩,随便玩
lv2:充值、买道具,继续玩
'''
print('*'*10,'欢迎来到消消乐','*'*10)
level = input('请输入你的级别(lv1,lv2):')
if level=='lv1':
print('免费玩,随便玩')
else:
print('已经进入付费级别,充值继续玩')
money = int(input('请充值(必须是100的倍数)'))
if money%100==0 and money>0:
# if 语句是允许嵌套,注意缩进问题
print('充值成功!充值金额是:',money)
else:
print('充值失败,充值金额必须是100的倍数!')
随机数import random
import random
print(random.randint(1,10))
#随机产生数字
练习1:
'''
猜大小
步骤:
1.系统产生一个随机数
2.键盘输入一个数
3.得系统产生的与键盘输入的进行比较
4.猜对了,中大奖 猜错啦 拜拜下次再来
'''
import random
ran = random.randint(1,10) # 8
num = int(input('请输入(1,10)之间的随机:')) #'8',所以要加''
if ran == num:
print('恭喜中大奖啦!奖品是:笔记本')
else:
print('很遗憾你猜错啦!与奖品擦肩而过~~~')
练习2:
'''
多层条件判断:
if 100-90:
优+
elif 90-80:
优-
elif 80-70:
良
elif 70-60:
及格
else
不及格
'''
fraction = int(input('请输入您的成绩:'))
if 90<fraction<=100:
print('优+')
elif 80<fraction<=90:
print('优-')
elif 70<fraction<=80:
print('良')
elif 60<fraction<=70:
print('及格')
else:
print('不及格')
if 四种结构
'''
if四种结构
if 条件:
语句
*******************************************************************************************************
if 条件:
语句
else:
语句
*******************************************************************************************************
if 条件1:
.......
if 条件2:
语句
else:
语句
else:
......
*******************************************************************************************************
if 条件1:
语句
elif 条件2:
语句
elif 条件3:
语句
.....
else:
语句
for循环语句
'''
应用场景:
1、猜大小 ---> 反复的猜
2、消消乐 ---> 反复充值
3、用户登录 ---> 登录多次
用户名
密码
for 变量名 in 集合:
语句
怎么用?
'''
# 使用系统给定range()完成范围指定
print(range(8)) #range(0,8) 包含0 但是不包含8 0,1,2,3,4,5,6,7
*******************************************************************************************************
#打印三次
for i in range(2):
print('hello--->',i)
print('---- game over -----')
'''
循环:吃5个馒头
'''
name = '赵飞'
for i in range(5):
print('{}很饿,正在吃第{}馒头'.format(name,i))
print('{}说:终于吃饱啦!'.format(name))
# range(n) ----> 0 ~ 0-1
# range(m,n) ---->m ~ n-1
'''
吃馒头:在第三个馒头上抹了一点'鹤顶红'
'''
print('*'*30)
name='张无忌'
for i in range(1,6):
# 判断i的值是多少,i==3 别吃
if i==3:
print("{}赶紧扔掉这个馒头,有剧毒:'鹤顶红'!!!".format(name))
else:
print('{}很饿,正在吃第{}馒头'.format(name,i))
print('{}说:终于吃饱啦!'.format(name))
*******************************************************************************************************
'''
for .... else
else:适用于for执行完或者没有循环数据时,需要做的事情
for i in 范围:
有数据执行的语句
else:
没有数据执行的语句
pass 空语句
只要有缩进而缩进的内容还不确定的时候,此时为了保证语法的正确性,就可以使用pass占位。
不会报出语法错误。
'''
name = '赵飞'
num = int(input('请输入需要的馒头数量:'))
for i in range(num):
print('{}很饿,正在吃第{}馒头'.format(name,i+1))
else:
print('还没有给我馒头,{}饿哭啦....'.format(name))
print('--------')
2、pass 空语句
#pass 空语句
只要有缩进而缩进的内容还不确定的时候,此时为了保证语法的正确性,就可以使用pass占位。
不会报出语法错误。
if 10>7:
print('10是大的')
else:
pass
print('-----判断结束------')
练习1:
3、break:跳出
# 用户的账号密码登录而且只能登录三次,如果三次未成功账户锁定
# break 关键字
for i in range(3):
username = input('请输入用户名:')
password = input('请输入密码:')
# 验证用户名和密码
if username =='songsong' and password== '123456':
print('欢迎!用户:{}'.format(username))
print('-----轻松购物吧-----') # 登录成功
break
else:
print('用户名或者密码有误!')
else:
print('账户被锁定,需要重新激活!') # 三次输入错误的时候
#登录成功
练习2:
for i in range(3):
if i == 1:
print('这家店是黑店,馒头有毒!等着关门吧!')
print('---->进入消协大门')
break #跳出循环结构
else:
print('这家店的馒头真香啊!要多吃几个呀!')
else:
print('---->这家店太棒啦,下次再来!')
'''
range的范围正常执行完毕,而没有异常break跳出,就可以执行else,
只要有break执行了就不会执行else
'''
4、while:关键字 完成循环
'''
while完整结构:
while 条件:
语句体(块)
else:
语句体(块)
'''
i = 0
while i<=10:
print(i)
#无限打印 0
'''
死循环:
1.打印变量,变量还没有改变。
2.while True: 避免条件不改变
pass
'''
练习:
i = 0
while i<=10: #10<=10 True 11<=10 False 结束循环结构
print(i) #print(10)
i+=1 #i=11
print('打印完毕')
# 打印1-30之间的所有3的倍数
#方式1:
n = 1
while n<=30:
# 进去循环体
if n%3==0:
print('---->',n)
# 改变n
n+=1
#方式2:
print('*'*30)
n=3
while n<=30:
print('---->',n)
n+=3
print('*'*30)
# 打印1-30之间的所有既是3的倍数还是5的倍数
n=1
while n<=30:
if n%3==0 and n%5==0:
print('------->',n)
#改变n的值
n+=1
*******************************************************************************************************
'''
使用while循环计算1-20的累加和
1+2+3+4+....+20
'''
sum_1 = 0
i = 1
while i<=20:
sum_1+=i
i+=1
print('---->累加和是:',sum_1)
练习:嵌套循环
'''
打印三角形
* ---->第一层1颗*
** ---->第二层2颗*
*** ---->第三层3颗*
****
*****
嵌套循环
分析:
1、层数明确
2、发现规律 层数与个数
3、用什么表示层,用什么表示*的个数
'''
#方式1:
ceng = 1
while ceng<=5:
print('*'*ceng) # 打印*
ceng+=1
#方式2:
ceng = 1
while ceng<=5:
# 打印*
# 嵌套while循环
count=1
while count<=ceng:
print('*',end='')
count+=1
ceng+=1
print() # 换行
# 打印 9*9的乘法表
'''
1*1 =1
1*2 =2 2*2 =4
1*3 =3 2*3 =6 3*3 =9
....
1*9 =9 2*9 =18 3*9 =27....
'''
ceng = 1
while ceng<=9:
count = 1
while count<=ceng:
print('{}*{}={}'.format(count,ceng,(count*ceng)),end='')
count+=1
print()
ceng+=1
'''
掷骰子
1、欢迎进入澳门赌场
2、输入用户名,默认用户是没有币
3、提示用户充值买币(100块钱30个币,充值必须是100的倍数,充值不成功可以再次充值)
4、玩一局游戏扣除2个币,猜大小(系统用随机数模拟骰子产生值)
5、只要猜对了奖励1个币,可以继续玩(想不想继续玩,也可以没有金币自动退出)
'''
print('*'*30)
print('欢迎进入澳门赌场')
print('*'*30)
import random
username = input('请输入顾客大名:')
money = 0
answer = input('确定进入游戏吗(y/n)?')
if answer=='y':
# 判断游戏币是否充足
# 做到反复充值
while money<2:
n = int(input('金币不足,请充值(100块钱30币,值必须是100的倍数):'))
# 充值金额判断
if n%100==0 and n>0:
money=(n//100)*30
print('当前剩余游戏币是:{},玩一局游戏扣除2个币'.format(money))
print('进入游戏.........')
while True:
# 模拟骰子 产生骰子的值
t1 = random.randint(1,6)
t2 = random.randint(1,6)
# 两个骰子的值大于6 --->大,否则就是小
money-=2 #扣除金币
print('系统洗牌完毕,请猜大小:')
guess = input('输入大或者输入小:')
# 判断:
if((t1+t2)>6 and guess=='大') or ((t1+t2)<=6 and guess=='小'):
print('恭喜{}!本局游戏获奖励1个游戏币!'.format(username))
money += 1
else:
print('很遗憾!本局游戏输啦o(╥﹏╥)o')
answer=input('是否继续再来一局游戏,要扣除2枚游戏币?(y/n):')
if answer!='y' or money<2:
print('退出游戏啦!!!')
break
5、continue跳过语句
作用:跳过循环体中下方的语句不执行,直接进行本次循环的下一次循环。
四、字符串运算符
1、字符串
带引号就是字符串类型
s1 = 'abc'
s2 = 'abc'
s3 = '''
abc
'''
print(id(s1),id(s2),id(s3)) # '''三引号占用的内存空间与单双引号的不同
s1 = input('请输入:')
s2 = input('请输入:')
print(s1 == s2) # 比较的是内容
print(s1 is s2) # 比较的是地址
print(s2 == s3)
print(s2 is s3)
s1 = input('请输入:') # 'abc'
s2 = input('请输入:') # 'abc'
print(s1 == s2) # True
print(s1 is s2) #Flase
# (常量赋值is是True,input输入底层做了处理所以最后的地址是不一样的)
2、字符串内置函数之大小写
- capitalize()
- title()
- istitle()
- upper()
- lower()
# 字符串的内建函数:声明一个字符串,默认可以调用内建函数(系统准备好的一些函数)
#第一部分:大小写相关的
# capitalize() title() istitle() upper() ower()
message = 'zhaorui is a beautiful girl!'
msg = message.capitalize() # 将字符串的第一个字符串转成大写的标识形式
print(msg)
msg = message.title() # 返回的是 每个单词的首字母大写的字符串
print(msg)
msg = message.istitle() # 返回的结果是布尔类型的,True False
print(msg)
msg = message.upper() # 将字符串全部转成大写的表示形式
print(msg)
result = msg.lower() # 将大写全部转小写
print(result)
# 案例:验证码案例
s='QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm0123456789'
print(len(s)) # 求字符串长度 len(str),返回值是一个整型的数值
#四个随机数
code =''
import random
ran = random.randint(1,len(s))
print(ran) # 从62个数字中随机选取一个
print(s[ran]) # 确定随机选取的数字位置对应的数字
for i in range(4):
ran = random.randint(0,len(s)-1)
code += s[ran] # code = code + 'v' ---->code='v'
print('验证码:'+code)
# 提醒用户输入验证码
user_input = input('请输入验证码:')
if user_input.lower() == code.lower():
print('验证码输入正确!')
else:
print('验证码错误!')
- find()
- rfind()
- 1find()
- index()
- rindex()
- lindex()
- replace() 查找相关的,替换