<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Python on XEDCZQ的博客</title><link>https://xedczq.cn/categories/python/</link><description>Recent content in Python on XEDCZQ的博客</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Fri, 22 May 2026 11:20:20 +0800</lastBuildDate><atom:link href="https://xedczq.cn/categories/python/index.xml" rel="self" type="application/rss+xml"/><item><title>python基础</title><link>https://xedczq.cn/post/javatopython/</link><pubDate>Fri, 22 May 2026 11:20:20 +0800</pubDate><guid>https://xedczq.cn/post/javatopython/</guid><description>&lt;h1 id="python-基础"&gt;&lt;a href="#python-%e5%9f%ba%e7%a1%80" class="header-anchor"&gt;&lt;/a&gt;Python 基础
&lt;/h1&gt;&lt;p&gt;做了几个 Java 的 AI 项目后，感觉市面上 Python AI 应用开发需求更广，虽然平时也有用 Python，但是大部分都是 Vibe Coding 做的，所以自己掌握得不是很好，正好借此系统补一下 Python 基础。&lt;/p&gt;
&lt;h2 id="基础变量与语法风格"&gt;&lt;a href="#%e5%9f%ba%e7%a1%80%e5%8f%98%e9%87%8f%e4%b8%8e%e8%af%ad%e6%b3%95%e9%a3%8e%e6%a0%bc" class="header-anchor"&gt;&lt;/a&gt;基础变量与语法风格
&lt;/h2&gt;&lt;p&gt;我先定义了几个变量：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;money&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;50.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;小明&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;和 Java 对比后，最直观的差异是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不需要写 &lt;code&gt;;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;不需要主类入口结构&lt;/li&gt;
&lt;li&gt;定义变量时不需要显式写类型&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="for-循环与字符串格式化"&gt;&lt;a href="#for-%e5%be%aa%e7%8e%af%e4%b8%8e%e5%ad%97%e7%ac%a6%e4%b8%b2%e6%a0%bc%e5%bc%8f%e5%8c%96" class="header-anchor"&gt;&lt;/a&gt;for 循环与字符串格式化
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt; hello world&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我这里用了 &lt;code&gt;f-string&lt;/code&gt;。另外 &lt;code&gt;print&lt;/code&gt; 也可以用逗号分隔参数：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;money:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;money&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我的理解是：这种写法更直接，不需要像 Java 一样频繁拼接字符串。&lt;/p&gt;
&lt;h2 id="布尔值与-ifelse"&gt;&lt;a href="#%e5%b8%83%e5%b0%94%e5%80%bc%e4%b8%8e-ifelse" class="header-anchor"&gt;&lt;/a&gt;布尔值与 if/else
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sig1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sig2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sig2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;sig2 is true&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;sig2 is false&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里我也注意到 Python 对缩进非常敏感，&lt;code&gt;if/else&lt;/code&gt; 代码块完全依赖缩进层级。&lt;/p&gt;
&lt;h2 id="函数与类型查看"&gt;&lt;a href="#%e5%87%bd%e6%95%b0%e4%b8%8e%e7%b1%bb%e5%9e%8b%e6%9f%a5%e7%9c%8b" class="header-anchor"&gt;&lt;/a&gt;函数与类型查看
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;print_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;print_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;money&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;print_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;print_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;我目前这一步主要是熟悉：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;函数定义不强制写返回值类型&lt;/li&gt;
&lt;li&gt;可以通过 &lt;code&gt;type()&lt;/code&gt; 快速看变量真实类型&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="类型转换"&gt;&lt;a href="#%e7%b1%bb%e5%9e%8b%e8%bd%ac%e6%8d%a2" class="header-anchor"&gt;&lt;/a&gt;类型转换
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;123&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里验证了数字转字符串的写法：&lt;code&gt;str(a)&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id="标识符与命名规则"&gt;&lt;a href="#%e6%a0%87%e8%af%86%e7%ac%a6%e4%b8%8e%e5%91%bd%e5%90%8d%e8%a7%84%e5%88%99" class="header-anchor"&gt;&lt;/a&gt;标识符与命名规则
&lt;/h2&gt;&lt;p&gt;我今天重点记住了下面这些规则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;标识符可以由中英文、数字、下划线组成&lt;/li&gt;
&lt;li&gt;不能以数字开头&lt;/li&gt;
&lt;li&gt;不能使用 Python 关键字&lt;/li&gt;
&lt;li&gt;大小写敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;变量命名规范：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用小写字母&lt;/li&gt;
&lt;li&gt;多个单词用下划线分隔（snake_case）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;错误命名示例：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;1name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;含特殊符号：&lt;code&gt;name!&lt;/code&gt;、&lt;code&gt;name@&lt;/code&gt;、&lt;code&gt;name#&lt;/code&gt; 等&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="阶段总结"&gt;&lt;a href="#%e9%98%b6%e6%ae%b5%e6%80%bb%e7%bb%93" class="header-anchor"&gt;&lt;/a&gt;阶段总结
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;先把 Java 思维里的样板代码去掉&lt;/li&gt;
&lt;li&gt;先习惯 Python 的缩进和动态类型&lt;/li&gt;
&lt;li&gt;先掌握最常用的循环、判断、函数、类型转换&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;后续我会继续补：列表/字典、面向对象、文件处理和常用 AI 开发库。&lt;/p&gt;</description></item></channel></rss>