python学习2019//4/27

本文深入讲解Python编程的基础知识,包括表达式的优先级、流程控制语句、循环与递归、字典的高效使用及代码优化技巧。同时,探讨了Python项目结构,模块与包的管理,以及代码组织的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表达式

有优先级
*,/大于+,-
常识级问题
and优先于or

在这里插入图片描述
强制修改运算优先级可加()
赋值运算符先算赋值号后的算式给出赋值

至今学习的为基本类型与基本概念

开发环境 IDE
暂时先用pycharm
或者使用vscode

流程控制语句

条件控制 ,循环控制,分支
if,else ,for,while switch
#单行注释 快捷键为ctrl+/
‘’‘
多行
注释 快捷键为alt+shift+a
’‘’
mood=True
if mood:
print(‘go to left’)
else :
print(‘go to right’)

mood=True
if mood:
print(‘go to left’)
else :
print(‘go to right’)

ACCOUNT=‘xt’
#账户名
PASSWORD=‘880213’
#密码
print(‘请输入用户名’)
USER_ACCOUNT=input()
#用户输入账户名
print(‘请输入密码’)
USER_PASSWORD=input()
#用户输入密码
if ACCOUNT == USER_ACCOUNT and PASSWORD == USER_PASSWORD:
print(‘对啦’)
else :
print(‘错误’)

constant 常量

代码块
同级代码块一行被执行后,其他同级代码也会被执行
嵌套使用,建议使用函数。模块化

print(‘请输入字符’)
a = int(input())
if a == 1:
print(‘first’)
else:
if a == 2:
print(‘double’)
else:
if a == 3:
print(‘banana’)
else:
print(‘end’)
如何简化

print(‘请输入字符’)
a = int(input())
if a == 1:
print(‘first’)
elif a == 2:
print(‘double’)
elif a == 3:
print(‘banana’)
else:
print(‘end’)

一般在其他语言里可以使用switch 解决
但是python里可以用字典更好的解决

循环

循环语句
while for

print(‘请输入字符’)
a = int(input())
if a == 1:
print(‘first’)
elif a == 2:
print(‘double’)
elif a == 3:
print(‘banana’)
else:
print(‘end’)

递归语句常用while
其他建议用for

for主要用于遍历/循环,序列,集合或者字典

a = [[‘1’,‘2’,‘3’,‘4’],(‘Q’,‘W’,‘E’,‘R’)]
for x in a:
for y in x:
print (y)
else:
print(‘end’)
遍历完后输出else
如想要输出与同一行可以
print(y,end=‘’)

a = [[‘1’,‘2’,‘3’,‘4’],(‘Q’,‘W’,‘E’,‘R’)]
for x in a:
for y in x:
if y == ‘2’:
break 停止,打断后不会继续执行else,除非还有外部循环

    elif y == 'E':
        continue       跳过,继续
    print (y)

else:
print(‘end’)

range 函数 排列
打印1-10
for x in range(1,11):
print(x)

for x in range(10,0,-2):
print(x) 正常为竖向排列

for x in range(10,0,-1):
print(x,end=’~’) 加end 改为横向排列‘’中加符号可以看做分隔

间隔取数

a = [1,2,3,4,5,6,7,8,9,10]
for x in range(0,len(a),2):
print(a[x],end=’|’)
或者
a=[1,2,3,4,5,6,7]
b=a[0:len(a):2]
print(b)

会写代码,很容易
写出性能,封装性(可复用),抽象的代码才是好的代码

python项目的组织结构

包,模块,类,函数、变量
class 类
init.py 导入包时会自动执行其中代码

导入模块

import module_name
import 导入,必须在输出之前
import t.c1
print(t.c1.a)
当模块层级比较多的情况下可以简化
import t.c1 as x
print(x.a) 把文件赋值为x
或者
from t.c1 import a
print(a) 把a指定为文件

from ts import *
*指把次包内所有模块导入

__all__定义 模块的内置属性
python标准每行代码80个字符
如果打不下需要换行可以使用
反斜杠键进行换行
或者在外部加入()

调用模块的几种方式

init.py 在包下会自动调用其中的模块

import t11 调用t11包下模块,如果包下有init文件就会自动调用其中模块
from ts import *
如init 模块内有用__all__ =[‘p1’]指定只调用某一模块的话其他模块是无法被调用的
系统内置库可随意调用,比如sys,datetime,io,等

a=(‘这是t11的init’)
print(a)
一般我们在init中可以存放需要导入的库,就不用在其他文件中每次都导入相同的库以方便调用
import sys
import datetime
import io

像这样,我们导入库时只需要
import t11
print(t11.sys.path) 类似的操作就可以导出需要的模块了
包和模块是不能重复的被导入的
一定要避免循环导入
导入模块时他就会去执行模块内的代码

-rwxr-xr-x. 1 root root 109M Jun 29 2020 /home/shared/cuda-10.1/NsightCompute-2019.3/host/linux-desktop-glibc_2_11_3-x64/libQt5WebEngineCore.so.5 -rwxr-xr-x. 1 root root 113M Jun 29 2020 /home/shared/cuda-10.1/nsightee_plugins/com.nvidia.cuda.repo-1.0.0-SNAPSHOT.zip -rwxr-xr-x. 1 root root 158M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libnvgraph.so.10.1.168 -rwxr-xr-x. 1 root root 132M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcufft.so.10.1.168 -rw-r--r--. 1 root root 180M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libnvgraph_static.a -rw-r--r--. 1 root root 137M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcufft_static.a -rw-r--r--. 1 root root 143M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcufft_static_nocallback.a -rwxr-xr-x. 1 root root 175M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcusolver.so.10.1.168 -rwxr-xr-x. 1 root root 117M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcusparse.so.10.1.168 -rw-r--r--. 1 root root 127M Jun 29 2020 /home/shared/cuda-10.1/targets/x86_64-linux/lib/libcusparse_static.a -rwxr-xr-x. 1 root root 140M Sep 28 2019 /home/shared/cuda-8.0/lib64/libcufft.so.8.0.61 -rw-r--r--. 1 root root 124M Sep 28 2019 /home/shared/cuda-8.0/lib64/libcufft_static.a -rw-r--r--. 1 root root 131M Sep 28 2019 /home/shared/cuda-8.0/lib64/libnppi_static.a -rwxr-xr-x. 1 root root 104M Sep 28 2019 /home/shared/cuda-8.0/lib64/libnppi.so.8.0.61 -rwxr-xr-x. 1 root root 292M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn.so -rwxr-xr-x. 1 root root 292M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn.so.7 -rwxr-xr-x. 1 root root 292M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn.so.7.4.1 -rw-r--r--. 1 root root 303M May 30 2019 /home/shared/cuda-9.0/lib64/libcudnn_static.a -rwxr-xr-x. 1 root root 127M May 30 2019 /home/shared/cuda-9.0/lib64/libcufft.so.9.0.176 -rw-r--r--. 1 root root 131M May 30 2019 /home/shared/cuda-9.0/lib64/libcufft_static.a -rwxr-xr-x. 1 root root 113M May 30 2019 /home/shared/cuda-9.0/nsightee_plugins/com.nvidia.cuda.repo-1.0.0-SNAPSHOT.zip -rwxr-xr-x. 1 root root 117M Jul 27 2021 /home/shared/cuda-11.0/nsight-systems-2020.3.2/host-linux-x64/libQt5WebEngineCore.so.5 -rwxr-xr-x. 1 root root 114M Jul 27 2021 /home/shared/cuda-11.0/nsightee_plugins/com.nvidia.cuda.repo-1.0.0-SNAPSHOT.zip -rwxr-xr-x. 1 root root 154M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusparse.so.11.1.0.218 -rw-r--r--. 1 root root 159M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusolver_static.a -rw-r--r--. 1 root root 160M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusparse_static.a -rwxr-xr-x. 1 root root 161M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcublasLt.so.11.1.0.229 -rw-r--r--. 1 root root 217M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcublasLt_static.a -rw-r--r--. 1 root root 110M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcublas_static.a -rwxr-xr-x. 1 root root 157M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcufft.so.10.2.0.218 -rw-r--r--. 1 root root 153M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcufft_static.a -rw-r--r--. 1 root root 167M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcufft_static_nocallback.a -rwxr-xr-x. 1 root root 498M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusolver.so.10.5.0.218 -rwxr-xr-x. 1 root root 294M Jul 27 2021 /home/shared/cuda-11.0/targets/x86_64-linux/lib/libcusolverMg.so.10.5.0.218
最新发布
06-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值