今天整理一下关于Python初学者的基础知识部分的第一课,因为之前学习过C,所以过于基础的知识就不详细记录了。

Python相对于C\C++来说,在语法方面已经很简单了;甚至对于JavaScript也是很简单的,减去了很多冗余的部分,让程序的编写更简单便捷。

一、变量

Python变量的定义很简单,Python是动态强类型语言Python省去了定义时的数据类型。C\C++在定义变量的时候都要明确声明该变量的数据类型,如int、char、floor、double、string等等,JavaScript已经简化了变量定义,但是仍然需要声明如var、let。相比之下Python就显得很方便了,并且Python不需要在每一行代码后面加上分号。

Python声明变量的格式为变量名 = “变量值”,例如:

name = "cen"

Python在变量的命名上与其他的编程语言类似,由字母、数字和下划线组成,由字母或下划线开始;并且有很多预留关键字不可以作为变量名:and,as,assert,break,class,continue,def,del,elif,except,exec,finally,for,from,global,if,import,in,is,lambda,not,or,pass,print,raise,return,try,while,with,yield

常量

在很多编程语言中都可以定义常量,Python也不例外。不过Python对于常量的定义就简单的多,只需要将常量名用全大写字母来命名即可。

二、注释

Python中单行注释:#,多行注释用'''......'''包起来,当然'''......'''也可以用于多行打印,下面会有例子,这里就不再赘述了。

三、输入与格式化输出

1、输入

C\C++在用户交互是使用的输入有scanf和cin,Python的用户交互程序则用的是input,并且Python的输入相比较于C\C++来说对格式的要求比较低,并且语法也相对比较简单,可以将输入内容和提示内容在一条语句内显示。Python2中的输入raw_input与Python3中的input是相同的,其实Python2中也有另一个input方法,不过其效果比较鸡肋,所以不推荐使用。Python3中的input方法才是正道。

格式如下:变量名 = input ("提示内容")例如:输入用户名和密码:

username = input("name: ")

password = input("password: ")

print(username,password)

执行效果如下:

name: cen

password:123cen123

大家可以看到无论是用户名和密码都是明文的,安全性很低,那么在输入时加密输入密码,类似于JavaScript中的input-password标签,应该怎么做呢?

getpass.getpass():

首先,要在代码中引入Python的标准库:import getpass,然后就可以愉快的使用getpass.getpass()方法啦

importgetpass

username= input("username:")

password= getpass.getpass("password:")print (username,password)

执行效果如下:

name: cen

password:

cen123

不过这个方法在PyCharm中无法执行,不方便调试,这是一个缺点,另一个缺点是在输入密码时看不到输入的位数,并且没有退格效果。

2、格式化输出

这个直接用例子来理解,例如:在Python中输入以下数据并输出如下格式:

----information of 姓名----Name:

Age:

Job:

Salary:

name = input("name")

age= input("age")

job= input("job")

salary= input("salary")

Python中输出可以有一下几种方法:

(1)字符串拼接法

字符串拼接法就说到了我们上面说的'''......'''多行打印。实现代码:

info1 = '''----information of''' + name + '''----

Nmae:''' + name + '''Age:''' + age + '''Job:''' + job + '''Salary:''' +salaryprint(info1)

不过字符串拼接法是最不好用的一种方法,多次开辟内存空间,效率低下,不建议使用。

(2)引用变量-%

引用变量的方法相对于字符串拼接方法来说无疑是更加便捷的方法了。

a、%s-----数据格式占位法。这种方法使用每一个数据的数据格式来占位,在最后给出每个占位相应的变量名。实现代码:

info2 = '''-----information of %s-----

Name:%s

Age:%s

Job:%s

Salary:%s'''%(name,name,age,job,salary)print(info2)

这里是各种数据类型所对应的符号:

符   号描述

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同%e,用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%f 和 %E 的简写

%p

用十六进制数格式化变量的地址

需要注意的是:(1)占位和变量名一定要一一对应。

(2)input输入的内容默认格式都是string类型,为了增强代码的规范性和可读性以及逻辑的严密性需要转换类型,用到数据类型的强制转换。格式变量名 = 数据类型()

例子如下(将字符串转化为整型):

age = int(input("age:"))

b、.format(_name = name)-----赋值  这种方法用一个占位名占位,在最后将变量的值赋给占位名。实现代码如下:

info3 = '''-----information of {_name}----

Name:{_name}

Age:{_age}

Job:{_job}

Salary:{_salary}'''.format( _name = name,_age = age,_job = job,_salary =salary)print(info3)

c、.format------数字占位  这种方法用数字(从0开始)来替代上面的占位名,更加简洁,但是对顺序要求很严格。实现代码如下:

info4 = '''----information of {0}----

Name:{0}

Age:{1}

Job:{2}

Salary:{3}'''.format(name,age,job,salary)print(info4)

以上方法均可格式化输出,执行结果如下:

name: cen

age: 21

job: student

salary: 1

-----info of cen-----

Name:cen

Age:21

Job:student

Salary:1

四、if-else流程判断

在每种编程语言中都有条件判断语法,if-else-elif是Python中的条件判断,语法格式如下:

if条件1:

Aelif条件2:

Belse:

C

Eg:判断输入的用户名密码是否合法:

_username = "cen"_password= "999999"username= input("username:")

password= input("password:")if username == _username and password ==_password:print("welcome user {name} login...".format(name =username))else:print("wrong username or password")

如果输入正确则:

username: cen

password:999999welcome user cen login...

如果输入错误则:

username: cen

password:123wrong usernameor password

五、循环

1、while循环while循环语法格式:

while条件:

循环体else:

B

Eg:输出0-2

count =0while count < 3:print(count)

count+= 1

else:print("已经到3啦")

执行结果:

0

1

2

已经到3啦

2、for循环

for循环语法格式如下:

for 计数器 inrange(参数):

循环体else:

B

for语句括号中的参数可以为一个参数,两个参数,三个参数。

如果是一个参数(E),则计数器从0开始运行到E结束;

如果是两个参数(B,E),则计数器从B开始运行到E结束;

如果是三个参数(B,E,S),则计数器从B开始运行到E结束,每隔S执行一次循环体;

Eg1:输出0-2

for i in range(3):print(i)else:print("已经到3啦")

01

2已经到3啦

Eg2:输出2-4

for i in range(2,5):print(i)else:print("已经到5啦")

2

3

4已经到5啦

Eg3:输出2-10,从2开始每隔3个打印一次

for i in range(2,10,3):print(i)else:print("已经到10啦")

2

5

8已经到10啦

3、continue,break和嵌套循环

(1)continue用于跳过本次循环;break用于结束整个循环

下面的例子有助于理解continue和break的区别

for i in range(5):if i == 2:continue

print(i)print("这是一条分界线")for i in range(5):if i == 2:break

print(i)

执行结果如下:

01

3

4这是一条分界线

01

(2)嵌套循环 Eg:

for i in range(4):if i == 2:continue

print(i,"----")for j in range(5):if j == 2:break

print(" ",j)

0 ----01

1 ----01

3 ----01

例题:猜数字游戏,规则如下:规定一个固定数字(如78),用户可以输入三次,用户输入的数字如果大于78,则提示“过大”;用户输入的数字如果小于78则提示“过小”;用户输入的数字如果等于78,则提示“猜对了”并结束游戏。用户输入三次后如果任未猜对,则提示“是否想继续游戏”,如果用户输入“N”则结束游戏,否则继续游戏;依次循环;

代码实现:

main_number = 78count= 3

whilecount:

guess_number= int(input("guess_number:") )if guess_number ==main_number:print("yes,you got it")break

elif guess_number >main_number :print("too big")else:print("too small")

count-= 1

if count ==0:

continue_confirm= input("Do you want to keep guessing?")if continue_confirm != 'n':

count= 3

六、模块初识

模块:通俗来说就是库,有点类似于函数集合。Python的模块大概分为两种,一种是标准库,一般在lib文件夹下;另一种是第三方库,一般在lib\\site-packages文件夹下。

Python的标准库例如sys和os库。再引入库的时候语法如下:import os

如果要引入自己写的库,一种方法是将库放在与.py文件同级目录下,这样显然很不方便。解决办法是:(1)将你自己的库拷贝到site-packages文件夹里(2)修改环境变量,增加一个路径

八、.PYC

在了解.PYC之前,先了解一下编译性语言和解释性语言的区别:

因为计算机不能理解高级语言,只能直接理解机器语言,所以要将高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。这个翻译的方式有两种:一种是编译,一种是解释。这两种方式只是翻译的时间不同。

编译性语言

编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

解释性语言

解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性java语言,专门有一个解释器能够直接执行java程序,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。

脚本语言是解释性语言。脚本语言一般都有相应的脚本引擎来解释执行。它们一般需要解释器才能运行。所以只要系统上有相应语言的解释程序就可以做到跨平台。脚本语言是一种解释性的语言,例如vbscript,javascript,installshield script等等,它不象c\c++等可以编译成二进制代码,以可执行文件的形式存在。

实际上,计算机语言已经不能按照编译型语言或者解释型语言来彻底区分了。比如说java语言是解释性语言。但是java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码。Java既可以被编译,也可以被解释。通过编译器,可以把Java程序翻译成一种中间代码 - 称为字节码 - 可以被Java解释器解释的独立于平台的代码。通过解释器,每条Java字节指令被分析,然后在计算机上运行。只需编译一次,程序运行时解释执行。Java字节码使“写一次,到处运行”成为可能。可以在任何有Java编译器的平台上把Java程序编译成字节码。这个字节码可以运行在任何Java VM上。例如,同一个Java程序可以运行在WindowsNT、Solaris和Macintosh上。

所以,其实.PYC文件是Python程序预编译后得到的字节码文件(.py->.pyc)。而pyCodeObject文件是Python编译器真正编译成的结果。即.PYC是pyCodeObject文件的一种持久化保存方式。

九、数据类型初识1、数字:  (1)int(整型)  long(长整型)

(2)float(浮点型)(8个字节(64位))

(3)complex(复数)

2、布尔值:真或假,0或1

3、字符串 str    在这里要提一下“字符串拼接”Python中的字符串在C语言中体现为一个字符数组,每次创建字符串时需要在内存中开辟一块连续的空间,并且一旦需要修改字符串的话,就需要在此开辟空间,“+”号每出现一次就会在内存中重新开辟一块空间。

4、bytes类型

Python3最重要的特性大概就要算是对文本和二进制数据作了更清晰的区别。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python3不会以任何隐藏的方法混用str和bytes,致使这两者的区分特别清晰。所以,你不能以任何形式拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。

儿童学python第一课_初学Python(第一课)相关推荐

  1. python拟合非线性模型_初学Python拟合Langmuir非线性方程

    以前都是用origin来进行拟合,但是参数初值需要猜测,有时候不一定能够得到正确结果.后来用过MATLAB的工具箱,可以拟合,但电脑要安装MATLAB还是占挺大空间的.花了一下午了解了一下用Pytho ...

  2. python的难点_初学python的操作难点总结(新手必看篇)

    如下所示: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的目录 直接 dir 3 想在一个盘下进去一个文件夹,用cd空格目标文件 cd p 4 写文件的第一个字母 ...

  3. python xpath循环_初学Python,就用它爬取一点情话说给她听!

    老铁们,一年一度的520就要来了,大家有没有正在抓耳挠腮的给女朋友准备礼物呢? 作为一个业余非专业程序猿(ps:自称程序猿,哈哈),最近初学python,用它来抓取情话网站的100页情话,作为给女朋友 ...

  4. python return用法_初学Python要了解什么 装饰器知识汇总有哪些

    初学Python要了解什么?装饰器知识汇总有哪些?在Python学习过程中,有多种方法对函数和类进行加工,相对于其它方式,装饰器语法简单,代码可读性高.因此,装饰器在Python项目中有广泛的应用,比 ...

  5. python换发型_初学Python的一些细节

    一.python的数据类型 1.python的基本数据类型包括数值数据类型和字符串数据类型:基本数据类型的特点是不允许改变,如果改变基本数据类型的值,会导致内存的重新分配. int 整形 二进制 a ...

  6. 学好python的技巧_初学Python搞不懂基础怎么学得好?掌握这9个技巧你也可以做大神...

    整理字符串输入 整理用户输入的问题在编程过程中极为常见.通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作.但是如果问题很复杂,可能有更好的方法来解决: ...

  7. python函数笔记_初学Python函数的笔记整理

    定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def m ...

  8. 学python哪个app比较好_初学python编程,有哪些不错的软件值得一用?

    初学python编程,有哪些不错的软件值得一用? 萧楚故人 发表于 2020-7-17 00:17:55 只看该作者 只看大图 倒序浏览 阅读模式 10 19832 下载好向圈APP可以快速联系圈友 ...

  9. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

最新文章

  1. 问:新来的同事都自愿996,这是内卷还是努力啊?
  2. jsf绑定bean_JSF –渴望的CDI bean
  3. 使用递归算法结合数据库解析成java树形结构
  4. axure插件怎么用_CAD插件不会用怎么行?CAD插件大全合集,超实用绘图软件,高效...
  5. jsoup: Java HTML Parser
  6. hdu 5094 Maze bfs
  7. vscode+leetcode环境配置
  8. C# lambda与表达式树
  9. JavaScript学习10 JS数据类型、强制类型转换和对象属性
  10. clickhouse语句_Siem落地方案:初识clickhouse
  11. 海康ps流转换h264流
  12. C/C++[codeup 1785]字符串连接
  13. 【antd 3.x】upload上传组件预览pdf格式文件和下载ofd格式文件
  14. 中国拖车洒水器市场趋势报告、技术动态创新及市场预测
  15. 【推荐软件】艾奇卡拉OK歌词字幕制作软件
  16. Linux 内存管理。
  17. 如何画 1PX 的线
  18. 从命令行中进入云主机及相关操作
  19. Unity线程与协程
  20. 请叫我程序员!(一)

热门文章

  1. 使用容量时间证明和类Casper确定性装置带来快速确定和抗长程攻击
  2. 小米4 miui6 android,小米4怎样升级MIUI6方法 小米4运行MIUI 6上手体验报告
  3. 02604---打印机 toner灯亮
  4. 微信小程序 初学——【音乐播放器】
  5. 中国土地市场网landchina.com数据采集心得
  6. 浪迹天涯king教你用elementui做复杂的表格,去处理报表数据(合并表头,合并表体行和列)
  7. H+4.9响应式后台主题UI框架源码带完整文档-免费下载
  8. 基于Quartus-FPGA制作蜂鸣器的相关教程
  9. pytorch_BCELoss的reduction参数理解
  10. html获取页面点击事件吗,jquery 获取页面点击事件 $(body).click()