Python入门
2024-10-06 16:51:59 0 举报
AI智能生成
Python入门
作者其他创作
大纲/内容
基础环境介绍、安装及配置
环境介绍
cuda
针对GPU的
CUDA英文全称是Compute Unified Device Architecture,其是有NVIDIA推出的运算平台,平台内嵌的并行架构计算可以使GPU解决复杂的计算问题。可以这么理解,GPU的强大算力是在CUDA的运算平台中发挥的。所以,想要发挥GPU强大的算力,就需要下载cuda。
#查看cuda版本:三种方式
nvcc -V
nvcc --version
cat /usr/loacal/cuda/version.txt
cat /usr/loacal/cuda/version.json
nvcc -V
nvcc --version
cat /usr/loacal/cuda/version.txt
cat /usr/loacal/cuda/version.json
cuda是操纵GPU的,anaconda是操作python的。深度学习代码通过python实现,python与cuda通信,通过python运行cuda,调用GPU完成计算。
cudnn
针对GPU的
cuDNN,深度神经网络库是 CUDA的一个子库,以高度优化的方式实现深度学习(如前向和反向卷积、池化层、归一化和激活层)的GPU加速,其广泛应用的深度学习框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PaddlePaddle、PyTorch 和 TensorFlow。
CUDA Toolkit 包括了一些列cuda包,用以开发cuda、编译、部署环境等一系列包,具体详见cuda toolkit
CUDA Toolkit 包括了一些列cuda包,用以开发cuda、编译、部署环境等一系列包,具体详见cuda toolkit
Conda
介绍
针对Python的
conda 是一个开源软件包管理系统和环境管理系统,适用于Windows、macOS和Linux等系统,其作用是快速安装、运行和更新软件包及其依赖项,其虽然是为python开发的,但适用语言包括Python,R,Ruby,Lua,Scala,Java,JavaScript,C / C ++,FORTRAN等。
conda 是一个流行的开源包管理系统和环境管理系统,用于安装、管理和部署软件包和环境。它主要与 Anaconda 或 Miniconda 发行版相关联,这两者都是 Python 的发行版,提供了一整套的科学计算和数据分析工具。
- Conda 是一个开源的包管理和环境管理系统。它能够轻松地安装、升级和卸载软件包,同时管理不同的环境,使得在同一系统上运行不同版本的软件变得容易。
- Conda 与 Python 语言无关,可以用于管理任何语言的软件包。
- 包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。
Miniconda
介绍
Miniconda是一款小巧的python环境管理工具,安装包大约只有50M多点,其安装程序中包含conda软件包管理器和Python,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。就只包含最基本的东西,其他的库得自己装。
Anaconda
介绍
针对Python的
Anaconda是一个打包的集合,里面预装好了Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等,拥有众多packages、科学计算工具等,就是把很多常用的不常用的库都给你装好了。
Anaconda 一个开源的python和R语言的发行版本,anaconda中的“ana”来源于“analyst“,用于计算科学(数据科学、机器学习、大数据处理和预测分析),anaconda透过conda进行软件包管理,致力于简化软件包管理系统和部署。
所谓发行版本,是指其整合了conda,并对其进行了包装。这一思想可参考linux的发行版本。
anaconda和conda的关系:anaconda中不仅包含conda,还包括数据管理平台(如oracle)、编译器(如jupyter notebook)、社区交流等。而conda在anaconda的作用是管理包和环境。
QA
QA1:conda与PIP的区别
环境安装
python
pip安装模块
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
指定使用清华的源进行安装
conda
安装
必须安装anconda或者miniconda
可不可以不安装anconda或者miniconda,只安装conda
不可以
不可以
https://www.nuomiphp.com/a/stackoverflow/zh/6372f9919bcb182b487e2726.html
基本使用
- 升级全部库: conda upgrade --all
- 升级一个包 conda update packagename
- 安装包:conda install packagename
- 也可以安装多个包: conda installl numpy pandas scipy
- 安装固定版本的包:conda install numpy =1.10
- 移除一个包:conda remove packagename
- 查看所有包:conda list
anaconda
安装包下载地址
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
https://repo.anaconda.com/archive/
Ubuntu
下载地址
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
下载完成后运行脚本安装
bash Anaconda3-2024.02-1-Linux-x86_64.sh
看下安装介绍,通常就回车---阅读协议,回车---yes---选择安装路径,默认的话直接回车---输入yes默认启动conda
如果未启动,到 /root/anaconda3/bin 下执行
source activate
使用命令更新终端
source ~/.bashrc
这时会看到命令最前面有(base)表示使用的是base环境
conda -V查看版本号,如果有显示则表示成功
常用操作
conda env list
查看anaconda当前存在的所有虚拟环境
conda create --name py3-10-14 python==3.10.14
创建新环境
conda activate py3-10-14
激活或者切换其他虚拟环境
conda deactivate
退出虚拟环境
conda remove -n py3-10-14 –all
删除虚拟环境
conda install jupyter notebook
安装 jupyter notebook
conda install pytorch=2.2.0 torchvision torchaudio cpuonly -c pytorch
pytorch 2.2.0 版本的安装
conda search -f torch
运行以下命令来搜索可用的 torch 版本
conda install pytorch-cpu=2.2.0 -c pytorch
安装 cpu版本的pytorch
Miniconda
安装
下载链接:https://repo.anaconda.com/miniconda/
安装步骤
- mkdir -p ~/miniconda3
- wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
- bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
- rm -rf ~/miniconda3/miniconda.sh
- ~/miniconda3/bin/conda init bash
- ~/miniconda3/bin/conda init zsh
运行
返回到基础环境或系统环境
conda deactivate
重新加载你的 Bash shell 的配置文件,以便应用最新的更改
source ~/.bashrc 就会进入
输入完前面就会多个(base)
python安装
windows
MAC
Linux
ubuntu
安装python环境即python解释器
QA
QA1:
原系统中有自带的python,但是想在安装一个版本,并将用这个版本上去通过pip包进行管理
官方下载tar.gz的包,重新通过源码编译的方式进行安装,安装完后指定python3.10版本,然后借这个pip进行安装
centos
安装python环境即python解释器
linux上默认会安装一个2.7.5版本的python环境
下载所需版本的源码包,通常下载tar.gz源码包
https://www.python.org/downloads/source/
准备编译环境,任选其一即可
yum -y group install "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make
安装
解压:tar -zxvf Python-3.9.7.tgz
./configure --prefix=/usr/local/python3
make && make install
建立软连接
删除系统默认的python2的软连接
rm -f /usr/bin/python
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python
ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip
验证是否成功
python -V
QA
QA1:whl是什么
.whl 文件是 Python Wheel 的缩写,是一种 Python 包的二进制分发格式。Wheel 格式被设计为取代传统的 egg 格式,并在 Python 包的安装、分发和管理方面提供更好的性能和可靠性。
Python入门
Python介绍
面向对象的编程语言
OOP的全称是"面向对象编程",英文全称是"Object-Oriented Programming"。在面向对象编程范 paradigm 下,程序的设计和组织是基于对象的概念,对象是程序的基本单元,通过定义和操作对象,实现程序的功能。OOP 通过封装、继承和多态等概念来组织和管理代码,使得代码更加模块化、可重用和易维护。这种编程范式被广泛应用于许多编程语言,包括Python、Java、C++等。
Python编译器
Python安装代码编辑器和代码编译器以及运行环境
windows
MAC
pip
pip 是 Python 的包管理器,用于安装和管理 Python 包(也称为模块或库)。它是 Python 的标准包管理工具,能够让用户轻松地安装、升级、卸载 Python 包。
创建项目
Print
- print('hello', 'world!') # 逗号自动添加默认的分隔符:空格
- print('hello' + 'world!') # 加号表示字符拼接
- print('hello', 'world', sep='***') # 单词间用***分隔
- print('#' * 50) # *号表示重复50遍
- print('how are you?', end='') # 默认print会打印回车,end=''表示不要回车
输入输出
input
number = input("请输入数字: ") # input用于获取键盘输入
print(number)
print(type(number)) # input获得的数据是字符型
print(number + 10) # 报错,不能把字符和数字做运算
print(int(number) + 10) # int可将字符串10转换成数字10
print(number + str(10)) # str将10转换为字符串后实现字符串拼接
print(number)
print(type(number)) # input获得的数据是字符型
print(number + 10) # 报错,不能把字符和数字做运算
print(int(number) + 10) # int可将字符串10转换成数字10
print(number + str(10)) # str将10转换为字符串后实现字符串拼接
输入输出
username = input('username: ')
print('welcome', username) # print各项间默认以空格作为分隔符
print('welcome ' + username) # 注意引号内最后的空格
print('welcome', username) # print各项间默认以空格作为分隔符
print('welcome ' + username) # 注意引号内最后的空格
Python 变量
在python中 ,单双引号不区分,表示一样的意义
Python 命名规则
Python 基础运算
运算优先级:算数运算符>比较运算符>逻辑运算符
算数运算符
比较运算符
逻辑运算符
print(5 / 2) # 2.5
print(5 // 2) # 丢弃余数,只保留商
print(5 % 2) # 求余数
print(5 ** 3) # 5的3次方
print(5 > 3) # 返回True
print(3 > 5) # 返回False
print(20 > 10 > 5) # python支持连续比较
print(20 > 10 and 10 > 5) # 与上面相同含义
print(not 20 > 10) # False
print(5 // 2) # 丢弃余数,只保留商
print(5 % 2) # 求余数
print(5 ** 3) # 5的3次方
print(5 > 3) # 返回True
print(3 > 5) # 返回False
print(20 > 10 > 5) # python支持连续比较
print(20 > 10 and 10 > 5) # 与上面相同含义
print(not 20 > 10) # False
Python 注释
单行注释用#
多行注释
Python 数据类型
int 整数
表示整数值,例如:-2, -1, 0, 1, 2。
float 浮点数
表示小数值,例如:-3.14, 0.0, 3.14。
布尔值
表示逻辑上的真(True)或假(False)。
none
表示空值或缺失值。
字符串
表示文本,用引号括起来,例如:'hello', "world"。
sentence = 'tom\'s pet is a cat' # 单引号中间还有单引号,可以转义
sentence2 = "tom's pet is a cat" # 也可以用双引号包含单引号
sentence3 = "tom said:\"hello world!\""
sentence4 = 'tom said:"hello world"'
# 三个连续的单引号或双引号,可以保存输入格式,允许输入多行字符串
words = """
hello
world
abcd"""
print(words)
py_str = 'python'
len(py_str) # 取长度
py_str[0] # 第一个字符
'python'[0]
py_str[-1] # 最后一个字符
# py_str[6] # 错误,下标超出范围
py_str[2:4] # 切片,起始下标包含,结束下标不包含
py_str[2:] # 从下标为2的字符取到结尾
py_str[:2] # 从开头取到下标是2之前的字符
py_str[:] # 取全部
py_str[::2] # 步长值为2,默认是1
py_str[1::2] # 取出yhn
py_str[::-1] # 步长为负,表示自右向左取
py_str + ' is good' # 简单的拼接到一起
py_str * 3 # 把字符串重复3遍
't' in py_str # True
'th' in py_str # True
'to' in py_str # False
'to' not in py_str # True
sentence2 = "tom's pet is a cat" # 也可以用双引号包含单引号
sentence3 = "tom said:\"hello world!\""
sentence4 = 'tom said:"hello world"'
# 三个连续的单引号或双引号,可以保存输入格式,允许输入多行字符串
words = """
hello
world
abcd"""
print(words)
py_str = 'python'
len(py_str) # 取长度
py_str[0] # 第一个字符
'python'[0]
py_str[-1] # 最后一个字符
# py_str[6] # 错误,下标超出范围
py_str[2:4] # 切片,起始下标包含,结束下标不包含
py_str[2:] # 从下标为2的字符取到结尾
py_str[:2] # 从开头取到下标是2之前的字符
py_str[:] # 取全部
py_str[::2] # 步长值为2,默认是1
py_str[1::2] # 取出yhn
py_str[::-1] # 步长为负,表示自右向左取
py_str + ' is good' # 简单的拼接到一起
py_str * 3 # 把字符串重复3遍
't' in py_str # True
'th' in py_str # True
'to' in py_str # False
'to' not in py_str # True
列表
列表是有序列对象,但它是容器类型,列表中可以包含各种数据
列表用中括号括起来
列表用中括号括起来
alist = [10, 20, 30, 'bob', 'alice', [1,2,3]]
len(alist)
alist[-1] # 取出最后一项
alist[-1][-1] # 因为最后一项是列表,列表还可以继续取下标
[1,2,3][-1] # [1,2,3]是列表,[-1]表示列表最后一项
alist[-2][2] # 列表倒数第2项是字符串,再取出字符下标为2的字符
alist[3:5] # ['bob', 'alice']
10 in alist # True
'o' in alist # False
100 not in alist # True
alist[-1] = 100 # 修改最后一项的值
alist.append(200) # 向列表中追加一项
len(alist)
alist[-1] # 取出最后一项
alist[-1][-1] # 因为最后一项是列表,列表还可以继续取下标
[1,2,3][-1] # [1,2,3]是列表,[-1]表示列表最后一项
alist[-2][2] # 列表倒数第2项是字符串,再取出字符下标为2的字符
alist[3:5] # ['bob', 'alice']
10 in alist # True
'o' in alist # False
100 not in alist # True
alist[-1] = 100 # 修改最后一项的值
alist.append(200) # 向列表中追加一项
元组
元组与列表基本上是一样的,只是元组不可变,列表是可以变的
元组用小括号括起来
元组用小括号括起来
atuple = (10, 20, 30, 'bob', 'alice', [1,2,3])
len(atuple)
10 in atuple
atuple[2]
atuple[3:5]
# atuple[-1] = 100 # 错误,元组是不可变的
len(atuple)
10 in atuple
atuple[2]
atuple[3:5]
# atuple[-1] = 100 # 错误,元组是不可变的
字典
字典是key-value(键-值)对形式的,是无序的,通过键取出值,用大括号括起来
# 字典是key-value(键-值)对形式的,没有顺序,通过键取出值
adict = {'name': 'bob', 'age': 23}
len(adict)
'bob' in adict # False
'name' in adict # True
adict['email'] = 'bob@tedu.cn' # 字典中没有key,则添加新项目
adict['age'] = 25 # 字典中已有key,修改对应的value
adict = {'name': 'bob', 'age': 23}
len(adict)
'bob' in adict # False
'name' in adict # True
adict['email'] = 'bob@tedu.cn' # 字典中没有key,则添加新项目
adict['age'] = 25 # 字典中已有key,修改对应的value
集合
无序不重复的元素集合,用大括号括起来,例如:{1, 2, 3}。
Python 交互模式
input
Python 条件语句
if 基本判断
条件为true则执行下面的语句
条件为true则执行下面的语句
单个的数据也可作为判断条件。
任何值为0的数字、空对象都是False,任何非0数字、非空对象都是True。
任何值为0的数字、空对象都是False,任何非0数字、非空对象都是True。
if 3 > 0:
print('yes')
print('ok')
if 10 in [10, 20, 30]:
print('ok')
if -0.0:
print('yes') # 任何值为0的数字都是False
if [1, 2]:
print('yes') # 非空对象都是True
if ' ':
print('yes') # 空格字符也是字符,条件为True
print('yes')
print('ok')
if 10 in [10, 20, 30]:
print('ok')
if -0.0:
print('yes') # 任何值为0的数字都是False
if [1, 2]:
print('yes') # 非空对象都是True
if ' ':
print('yes') # 空格字符也是字符,条件为True
条件表达式、三元运算符
if a < b:
smaller = a
else:
smaller = b
print(smaller)
s = a if a < b else b # 和上面的if-else语句等价
print(s)
smaller = a
else:
smaller = b
print(smaller)
s = a if a < b else b # 和上面的if-else语句等价
print(s)
判断用户名密码是否正确
import getpass # 导入模块
username = input('username: ')
# getpass模块中,有一个方法也叫getpass
password = getpass.getpass('password: ')
if username == 'bob' and password == '123456':
print('Login successful')
else:
print('Login incorrect')
username = input('username: ')
# getpass模块中,有一个方法也叫getpass
password = getpass.getpass('password: ')
if username == 'bob' and password == '123456':
print('Login successful')
else:
print('Login incorrect')
getpass函数跟input函数一样都可以用来获取终端输入的内容。
只是getpass函数会隐藏用户在终端输入的内容,不会明文显示。
只是getpass函数会隐藏用户在终端输入的内容,不会明文显示。
嵌套/多条件语句
这边以一个猜数练习作为示例
import random
num = random.randint(1, 10) # 随机生成1-10之间的数字
answer = int(input('guess a number: ')) # 将用户输入的字符转成整数
if answer > num:
print('猜大了')
elif answer < num:
print('猜小了')
else:
print('猜对了')
print('the number:', num)
num = random.randint(1, 10) # 随机生成1-10之间的数字
answer = int(input('guess a number: ')) # 将用户输入的字符转成整数
if answer > num:
print('猜大了')
elif answer < num:
print('猜小了')
else:
print('猜对了')
print('the number:', num)
成绩分类01
score = int(input('分数: '))
if score >= 90:
print('优秀')
elif score >= 80:
print('好')
elif score >= 70:
print('良')
elif score >= 60:
print('及格')
else:
print('你要努力了')
if score >= 90:
print('优秀')
elif score >= 80:
print('好')
elif score >= 70:
print('良')
elif score >= 60:
print('及格')
else:
print('你要努力了')
成绩分类02
score = int(input('分数: '))
if score >= 60 and score < 70:
print('及格')
elif 70 <= score < 80:
print('良')
elif 80 <= score < 90:
print('好')
elif score >= 90:
print('优秀')
else:
print('你要努力了')
if score >= 60 and score < 70:
print('及格')
elif 70 <= score < 80:
print('良')
elif 80 <= score < 90:
print('好')
elif score >= 90:
print('优秀')
else:
print('你要努力了')
石头剪刀布
import random
all_choices = ['石头', '剪刀', '布']
computer = random.choice(all_choices)
player = input('请出拳: ')
# print('Your choice:', player, "Computer's choice:", computer)
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == '石头':
if computer == '石头':
print('平局')
elif computer == '剪刀':
print('You WIN!!!')
else:
print('You LOSE!!!')
elif player == '剪刀':
if computer == '石头':
print('You LOSE!!!')
elif computer == '剪刀':
print('平局')
else:
print('You WIN!!!')
else:
if computer == '石头':
print('You WIN!!!')
elif computer == '剪刀':
print('You LOSE!!!')
else:
print('平局')
all_choices = ['石头', '剪刀', '布']
computer = random.choice(all_choices)
player = input('请出拳: ')
# print('Your choice:', player, "Computer's choice:", computer)
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == '石头':
if computer == '石头':
print('平局')
elif computer == '剪刀':
print('You WIN!!!')
else:
print('You LOSE!!!')
elif player == '剪刀':
if computer == '石头':
print('You LOSE!!!')
elif computer == '剪刀':
print('平局')
else:
print('You WIN!!!')
else:
if computer == '石头':
print('You WIN!!!')
elif computer == '剪刀':
print('You LOSE!!!')
else:
print('平局')
改进的石头剪刀布
import random
all_choices = ['石头', '剪刀', '布']
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
prompt = """(0) 石头
(1) 剪刀
(2) 布
请选择(0/1/2): """
computer = random.choice(all_choices)
ind = int(input(prompt))
player = all_choices[ind]
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == computer:
print('\033[32;1m平局\033[0m')
elif [player, computer] in win_list:
print('\033[31;1mYou WIN!!!\033[0m')
else:
print('\033[31;1mYou LOSE!!!\033[0m')
all_choices = ['石头', '剪刀', '布']
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
prompt = """(0) 石头
(1) 剪刀
(2) 布
请选择(0/1/2): """
computer = random.choice(all_choices)
ind = int(input(prompt))
player = all_choices[ind]
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == computer:
print('\033[32;1m平局\033[0m')
elif [player, computer] in win_list:
print('\033[31;1mYou WIN!!!\033[0m')
else:
print('\033[31;1mYou LOSE!!!\033[0m')
Python 循环语句
for循环
for循环遍历数据对象
astr = 'hello'
alist = [10, 20, 30]
atuple = ('bob', 'tom', 'alice')
adict = {'name': 'john', 'age': 23}
for ch in astr:
print(ch)
for i in alist:
print(i)
for name in atuple:
print(name)
for key in adict:
print('%s: %s' % (key, adict[key]))
alist = [10, 20, 30]
atuple = ('bob', 'tom', 'alice')
adict = {'name': 'john', 'age': 23}
for ch in astr:
print(ch)
for i in alist:
print(i)
for name in atuple:
print(name)
for key in adict:
print('%s: %s' % (key, adict[key]))
range用法及数字累加
# range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# >>> list(range(10))
# range(6, 11) # [6, 7, 8, 9, 10]
# range(1, 10, 2) # [1, 3, 5, 7, 9]
# range(10, 0, -1) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
sum100 = 0
for i in range(1, 101):
sum100 += i
print(sum100)
# >>> list(range(10))
# range(6, 11) # [6, 7, 8, 9, 10]
# range(1, 10, 2) # [1, 3, 5, 7, 9]
# range(10, 0, -1) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
sum100 = 0
for i in range(1, 101):
sum100 += i
print(sum100)
列表实现斐波那契数列
列表中先给定两个数字,后面的数字总是前两个数字之和。
fib = [0, 1]
for i in range(8):
fib.append(fib[-1] + fib[-2])
print(fib)
for i in range(8):
fib.append(fib[-1] + fib[-2])
print(fib)
while循环
猜数
猜数,五次机会
import random
num = random.randint(1, 10)
counter = 0
while counter < 5:
answer = int(input('guess the number: '))
if answer > num:
print('猜大了')
elif answer < num:
print('猜小了')
else:
print('猜对了')
break
counter += 1
else: # 循环被break就不执行了,没有被break才执行
print('the number is:', num)
num = random.randint(1, 10)
counter = 0
while counter < 5:
answer = int(input('guess the number: '))
if answer > num:
print('猜大了')
elif answer < num:
print('猜小了')
else:
print('猜对了')
break
counter += 1
else: # 循环被break就不执行了,没有被break才执行
print('the number is:', num)
猜数一直到猜对
import random
num = random.randint(1, 10)
running = True
while running:
answer = int(input('guess the number: '))
if answer > num:
print('猜大了')
elif answer < num:
print('猜小了')
else:
print('猜对了')
running = False
num = random.randint(1, 10)
running = True
while running:
answer = int(input('guess the number: '))
if answer > num:
print('猜大了')
elif answer < num:
print('猜小了')
else:
print('猜对了')
running = False
石头剪刀布
三局两胜
import random
all_choices = ['石头', '剪刀', '布']
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
prompt = """(0) 石头
(1) 剪刀
(2) 布
请选择(0/1/2): """
cwin = 0
pwin = 0
while cwin < 2 and pwin < 2:
computer = random.choice(all_choices)
ind = int(input(prompt))
player = all_choices[ind]
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == computer:
print('\033[32;1m平局\033[0m')
elif [player, computer] in win_list:
pwin += 1
print('\033[31;1mYou WIN!!!\033[0m')
else:
cwin += 1
print('\033[31;1mYou LOSE!!!\033[0m')
all_choices = ['石头', '剪刀', '布']
win_list = [['石头', '剪刀'], ['剪刀', '布'], ['布', '石头']]
prompt = """(0) 石头
(1) 剪刀
(2) 布
请选择(0/1/2): """
cwin = 0
pwin = 0
while cwin < 2 and pwin < 2:
computer = random.choice(all_choices)
ind = int(input(prompt))
player = all_choices[ind]
print("Your choice: %s, Computer's choice: %s" % (player, computer))
if player == computer:
print('\033[32;1m平局\033[0m')
elif [player, computer] in win_list:
pwin += 1
print('\033[31;1mYou WIN!!!\033[0m')
else:
cwin += 1
print('\033[31;1mYou LOSE!!!\033[0m')
while循环,累加至100
知道循环次数的情况下最好使用for循环
知道循环次数的情况下最好使用for循环
sum100 = 0
counter = 1
while counter < 101:
sum100 += counter
counter += 1
print(sum100)
counter = 1
while counter < 101:
sum100 += counter
counter += 1
print(sum100)
while-break
while True:
yn = input('Continue(y/n): ')
if yn in ['n', 'N']:
break
print('running...')
yn = input('Continue(y/n): ')
if yn in ['n', 'N']:
break
print('running...')
break是结束循环,break之后、循环体内代码不再执行。
while-continue
sum100 = 0
counter = 0
while counter < 100:
counter += 1
# if counter % 2:
if counter % 2 == 1:
continue
sum100 += counter
print(sum100)
counter = 0
while counter < 100:
counter += 1
# if counter % 2:
if counter % 2 == 1:
continue
sum100 += counter
print(sum100)
计算100以内偶数之和。
continue是跳过本次循环剩余部分,回到循环条件处。
continue是跳过本次循环剩余部分,回到循环条件处。
Python 格式化字符串
Python 函数
Python 引入模块
Python 面向对象编程
封装
子主题
继承
多态
Python 创建类
Python 类继承
Python 文件操作
Python 文件路径
文件路径
绝对路径
相对路径
文件操作
读取
写入
基础操作
拷贝
拷贝文件就是以r的方式打开源文件,以w的方式打开目标文件,将源文件数据读出后,写到目标文件。
这个方式可以拷贝,但不推荐
推荐使用这个方式;每次读取4K,读完为止:
Python 异常处理
Python 测试
Python高阶和匿名函数
0 条评论
下一页