初学Python(第一课)
今天整理一下关于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: 123
cen 123
大家可以看到无论是用户名和密码都是明文的,安全性很低,那么在输入时加密输入密码,类似于JavaScript中的input-password标签,应该怎么做呢?
getpass.getpass():
首先,要在代码中引入Python的标准库:import getpass,然后就可以愉快的使用getpass.getpass()方法啦
import getpass
username = input("username: ")
password = getpass.getpass("password: ")
print (username,password)
执行效果如下:
name: cen
password:
cen 123
不过这个方法在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:''' + salary
print(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)
以上方法均可格式化输出,执行结果如下:
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:
A
elif 条件2:
B
else:
C
Eg:判断输入的用户名密码是否合法:
_username = "cen"
_password = "" 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: 999999
welcome user cen login...
如果输入错误则:
username: cen
password: 123
wrong username or password
五、循环
1、while循环while循环语法格式:
while 条件:
循环体
else:
B
Eg:输出0-2
count = 0
while count < 3:
print(count)
count += 1
else:
print("已经到3啦")
执行结果:
0
1
2
已经到3啦
2、for循环
for循环语法格式如下:
for 计数器 in range(参数):
循环体
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啦")
0
1
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)
执行结果如下:
0
1
3
4
这是一条分界线
0
1
(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 ----
0
1
1 ----
0
1
3 ----
0
1
例题:猜数字游戏,规则如下:规定一个固定数字(如78),用户可以输入三次,用户输入的数字如果大于78,则提示“过大”;用户输入的数字如果小于78则提示“过小”;用户输入的数字如果等于78,则提示“猜对了”并结束游戏。用户输入三次后如果任未猜对,则提示“是否想继续游戏”,如果用户输入“N”则结束游戏,否则继续游戏;依次循环;
代码实现:
main_number = 78
count = 3
while count:
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之前,先了解一下编译性语言和解释性语言的区别:
因为计算机不能理解高级语言,只能直接理解机器语言,所以要将高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。这个翻译的方式有两种:一种是编译,一种是解释。这两种方式只是翻译的时间不同。

初学Python(第一课)的更多相关文章
- <-0基础学python.第一课->
初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人 ...
- Python 第一课笔记
1.Hello World程序的两种方法 在windows下执行 1.编辑器里输入,不用编译 print("Hello World!") 直接就可以运行 2.可以 ...
- 初学Python——第一节课
一.Python语言的特性: 1.与C语言不同,Python语言是一门解释性语言.程序在执行过程中,执行一步.编译一步. 2.Python是一个动态类型语言,不需要定义变量的数据类型. 3.Pytho ...
- 初学python第一天
在学习了c++,java后自己又找到一门面向对象的技术.没错,它就是python.首先介绍一下自己所用的python版本,自己在Python官网http://www.python.org下载了IDLE ...
- Python第一课
一.模块的常用方法 __name__ #主模块name值main __file__ #文件所在的路径+文件名 __doc__ #文件级别的注释 二.函数 参数 参数默认值 可变参数 ...
- python 第一课 helloworld
#!/usr/bin/env python #-*-coding:utf-8-*- #以上是配置编写环境的开始 #第一行env表示运行当前环境变量内的python版本(2.x or 3.x) #第二行 ...
- python第一课——关于python的一些概念
day01(上午): 1.学习方法(建议): 1).不要依赖于我的视频,绝对不要晚上将视频全部在过一遍 2).上课不要记笔记,而且不要用纸质的笔记本去整理笔记 3).不要只看不敲,代码方面我们需要做到 ...
- python第一课--基础知识
python简介 Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的 ...
- Python 第一课
Python语言特点: 优雅,明确,简单 适合开发: Web网络和各种网络服务 系统工具和脚本 作为胶水语言把其他语言开发的模块包装起来方便使用 Python2.7.10的安装(path环境变量) ...
- python 第一课作用
1.使用while循环输入 1 2 3 4 5 6 8 9 10 x=0while x<10: x=x+1 if x==7: print(' ') continue print(x)#学 ...
随机推荐
- Executors线程池
强烈建议程序员使用较为方便的 Executors 工厂方法 Executors.newCachedThreadPool()(无界线程池,可以进行自动线程回收).Executors.newFixedTh ...
- LindDotNetCore~Polly组件对微服务场景的价值
回到目录 Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员! App vNext:https://github.com/App-vNext GitHu ...
- 了解JDK 6和JDK 7中substring的原理及区别
substring(int beginIndex, int endIndex)方法在jdk 6和jdk 7中的实现是不同的.了解他们的区别可以帮助你更好的使用他.为简单起见,后文中用substring ...
- linux下建ftp用户,并限制用户访问路径[转]
目的是:在linux系统上建立ftp用户,并限制其通过ftp访问时,只能访问用户主目录:其主目录显示路径也是“/”,看不到上级目录. 例如,我要建立用户usertest,密码为usertest ...
- jinja2.exceptions.TemplateNotFound: home/index.html
问题: 检查路由路径和模版渲染方式,其他文件路径都正确,可以返回字符串,就是无法返回定义的模版,为什么flask无法启找到这个模版? 那,问题原因在哪? 在flask中,目录有着严格的定义,模版目录必 ...
- 解读TCP 四种定时器
TCP 是提供可靠的传输层,它使用的方法之一就是确认从另一端收到的数据.但是数据和确认都可能会丢失.TCP 通过在发送时设置一个定时器来解决这个问题.如果当定时器溢出时还没收到确认,它就会重传该数据. ...
- ATS 分级缓存
理解缓存分级cache hierarchies 缓存分级是由彼此能够相互通信的各级缓存组成的,ATS支持几种类型的缓存分级.所有的缓存分级都有父子缓存概念. 父缓存位于缓存分级的较高级别,ATS能将请 ...
- 在VMware中安装ubuntu
如果想在自己设置它的属性,比如时区,语言支持之类的,在开机时按[enter], 否则就是默认的设置了,英文语言,而且还不好调.
- vhost-user 简介
什么是 vhost-user 在 vhost 的方案中,由于 vhost 实现在内核中,guest 与 vhost 的通信,相较于原生的 virtio 方式性能上有了一定程度的提升,从 guest 到 ...
- FC经典游戏还原之:松鼠大作战2
版权声明:本文原创发布于博客园"优梦创客"的博客空间(id:raymondking123) 原帖地址:http://www.cnblogs.com/raymondking123/p ...