python基础知识

本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhaoqingqing/p/14856690.html



前言#

python中需要特别注意代码的缩进,这不是为了可读性而是正确性,不像 C#,lua ( function xxx do end),js等语言的函数范围用{}表示。

对于判断是否包含尽量使用in,而不使用for,具体参考:《Python编程惯例.md》

Non-ASCII character#

python报错“Non-ASCII character '\xe5' ”

解决方法:

在Python源文件的第一行加上文件编码

Copy
# coding=UTF-8 #或者 # coding:UTF-8 -- #python2添加 # -*- coding: utf-8 -*-

(手册链接:https://docs.python.org/3.5/whatsnew/3.0.html#pep-3101-a-new-approach-to-string-formatting)

python 2.x 默认不是 UTF-8 编码,而 python 3.x 默认支持 UTF-8 编码。

变量定义#

不需要var 也不要写类型,直接写变量名,全局和局部变量都不需要写类型

变量的定义需要放在使用的前面,可以理解为像C那样顺序执行的,而不像C#。

假如全局和局部名相同,而要特殊声明使用的是全局变量,则在变量明名前加上 global(注意global变量在初始化时不能赋值)

Copy
x = 100 def func(): global x print(x) x = 2 print(x) func() print(x)

输出结果为:

100 2 2

关于变量的详细可参考这篇文章《python变量(全局、局部):global、nonlocal、locals

函数定义#

Copy
def 函数名: 函数内容

返回值

Copy
def sum(a,b): return a+b,a-b test1,test2=sum(2,1) print(test1,test2) #输出 3 1

多返回值,通过,分隔,这点用lua的写法一样

可变参数

或者定义成如下: def add(*args):

Copy
#可变参数 def calcTotal(nums): total = 0; for num in nums: total = total + num return total print(calcTotal((1,2,3))) #输出 6

代码注释#

Copy
# 单行注释 """ 要注释的内容 多行注释,三个双引号连接 """

输入与输出#

Copy
name=input("请输入帐号") pwd=input("请输入密码") print("name:%s,pwd:%s"%(name,pwd)) #输出 请输入帐号111 请输入密码222 name:111,pwd:222 #用空格连接 print(name,pwd) 111 222 #输出

注意引号后面没有,也没有空格

转义字符后接 %()

数据结构#

推荐一篇非常好的文章讲解python中的几种数据结构《Python中list,tuple,dict,set的区别和用法 - soaringEveryday - 博客园 (cnblogs.com)

dict#

判断字典中不存在key

Copy
# 方法一 dictxx.has_key(xx) # 方法二 if "skin_name" not in hero: print("数据异常") return

list#

遍历列表

Copy
for k in range(len(skins)):

逻辑控制#

If和elif后面加冒号:

没有++和--,有+=1

当for循环要退出时要加break,C#中的continue也有效

for循环#

Copy
for i in range (0,2): print(i)#打印0,1

#

python类中的方法,需要传入self,这点和Lua是一样的。

py文件执行完不直接退出#

在python文件的未尾添加一行输入符,等待用户按下任意键才会退出

Copy
input("press any key .....") os.system("pause")

python执行#

python test.py 和python -m test.py 这两者的区别?

直接运行会将该脚本所在目录添加至sys.path
当做模块启动则会将当前运行命令的路径添加至sys.path

end=#

end=,文本中文字本来就是有换行的,如果想在输出时不换行,可以写end="",如果不加,那么会多处换行

Copy
filepath = r'E:\Code\test.txt' with open(filepath, mode="r", encoding="utf-8") as f: for line in f: print(line) #不加 end="" 输出如下 """ 第一行 第二行 共三行 """ #加上end="" 输出如下 """ 第一行 第二行 共三行 """

常见代码#

tuple 元组

Copy
__name__是Python中一个隐含的变量它代表了模块的名字 只有被Python解释器直接执行的模块的名字才是__main__ if __name__ == '__main__':

善于使用in运算符。

Copy
if x in items: # 包含 for x in items: # 迭代

in的使用示例:

Copy
name = 'Hao LUO' if 'L' in name: print('The name has an L in it.')

参考资料#

Python3 与 C# 基础语法对比(就当Python和C#基础的普及吧)

Python-100-Days (基础部分看到Day01-15就可以,进阶部分可以选择性看)

作者:赵青青   一名在【网易游戏】做游戏开发的程序员,擅长Unity3D,游戏开发,.NET等领域。
本文版权归作者和博客园共有,欢迎转载,转载之后请务必在文章明显位置标出原文链接和作者,谢谢。
如果本文对您有帮助,请点击【推荐】您的赞赏将鼓励我继续创作!想跟我一起进步么?那就【关注】我吧。
posted @   赵青青  阅读(176)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
历史上的今天:
2016-06-06 Gvr SDK for Unity 分析(一)
CONTENTS
点击右上角即可分享
微信分享提示