PYTHON学习之路_PYTHON基础(1)
学习内容:
1、Python介绍
2、Python程序初接触和变量
3、Python用户交互
4、Python数据类型
5、Python循环if...(elif)...else
6、Python循环while...else
7、Python循环for...else
8、Python循环中断break和continue
9、Python实例
一、Python介绍
1)python优缺点
先看优点:
- Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
- 高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
- 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就几乎可以在市场上所有的系统平台上运行
- 可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
- 可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
再看缺点:
- 速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来,比如你用C运一个程序花了0.1s,用Python是0.01s,这样C语言直接比Python快了10s,算是非常夸张了,但是你是无法直接通过肉眼感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右,哈哈。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
- 代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
- 线程不能利用多CPU问题,这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。关于这个问题的折衷解决方法,我们在以后线程和进程章节里再进行详细探讨。
二、Python程序初接触和变量
print (“Hello,world!”)#第一个python程序
b=2
c=3
print (b,c) #变量赋值
b=22
print (b,c) #变量指向内存地址
name="spider"
print (name) #变量赋值(字符串)
蜘蛛 = "spider" #python2与python3区别之一
print (蜘蛛)
三、Python用户交互
1)input及raw_input
python2中raw_input即为python3中的input(用法一致)
python2中input 慎用
2)input用法及参数传递方式:
name = input('Name:')
age = input('Age:')
print (type(age))
job = input('Job:')
salary = input('Salary:') info3='''
-----information of info3 {0}
Name:{0}
Age:{1}
Job:{2}
Salary={3}
'''.format(name,age,job,salary) print (info3) info2='''
------information of info2 {_name}------
Name:{_name}
Age :{_age}
Job :{_job}
salary:{_salary}
''' .format(_name=name,
_age=age,
_job=job,
_salary=salary) print (info2)
info1 = '''
-------information of info1 %s-------
Name:%s
Age :%s
Job :%s
Salary :%s
''' %(name,name,age,job,salary) print (info1) info='''
---------information of info ''' + name +'''--------
Name:''' + name + '''
Age :''' + age + '''
Job :''' + job + '''
Salary :''' + salary print (info)
四、Python数据类型及字符编码格式
1)数据类型
数字int 浮点f 字符串s bool:Ture和False
2)字符编码
ASCII :American Standard Code for Information Interchange ,美国标准信息交换代码 占1byte
GB2312:1980年诞生,支持7000个中文,占2bytes
GBK:1995年诞生,支持2万个中文,占2bytes
GB18030:2000年诞生,支持蒙、藏、维等字符,支持2.7万文字,占2bytes
注:以上均向下兼容;
后来unicode诞生,又叫万国码、统一码,支持以上格式,兼容他国语言,占2bytes
由于资源浪费,UTF-8诞生,可变长度的unicode,ASCII中的内容占1byte,欧洲的字符占2bytes,东亚的字符占3bytes(赤裸裸的剥削)
五、Python循环if...(elif)...else
#密文密码输入 getpass模块 pycharm下无法实现,在linux系统下可以实现
import getpass
''' #输入用户名和密码正确欢迎,错误返回错误消息
_username = 'spider'
_password = '123' username = input("请输入用户名:")
#password = getpass.getpass("请输入密码:") #密文输入
password= input("请输入密码:")
if username == _username and password == _password:
print ("Welcome user {a} login...".format(a=username))
else:
print ("invalid username or password") print (username,password)
'''
六、Python循环while...else
Age_of_oldboy = 78 #猜数字,对了打印信息,最多猜三次,都错误返回信息
count = 0
while count<3:
guess_age = int(input ("gusee oldboy's age:")) if guess_age == Age_of_oldboy:
print ("Yes,you got it!")
break
elif guess_age > Age_of_oldboy:
print ("You are wrong,guess smaller...")
else:
print ("You are wrong,guess bigger!") count +=1
else:
print ("you have tried too many times.. Please go out!")
七、Python循环for...else
Age_of_oldboy = 38 #猜数字,对了打印信息,最多猜三次,都错误返回信息 for count in range (3):
guess_age = int(input ("gusee oldboy's age:")) if guess_age == Age_of_oldboy:
print ("Yes,you got it!")
break
elif guess_age > Age_of_oldboy:
print ("You are wrong,guess smaller...")
else:
print ("You are wrong,guess bigger!")
八、Python循环中断break和continue
1)break跳出该循环;continue跳出本次循环
举例1:
for i in range(0,10): #i<5则继续向下执行,打印j,i>5则不向下执行,不打印j
print ("---------",i)
if i> 5 :
continue
for j in range(0,10):#j<5则打印j,j>5则跳出该循环
print (j)
if j > 5:
break
举例2:
for i in range(0,10): #当i>5,跳出循环,不向下执行,当i<5,向下执行
print ("---------",i)
if i> 5 :
break
for j in range(0,10):
print (j)
if j > 5:
continue
九、Python实例
用户登录系统
PYTHON学习之路_PYTHON基础(1)的更多相关文章
- PYTHON学习之路_PYTHON基础(10)
学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...
- PYTHON学习之路_PYTHON基础(8)
学习内容: Python模块介绍 1.经典类 or 新式类 2.抽象接口 3.静态方法.类方法.属性方法 4.反射 5.异常处理 6.socket编程初识 7.用socket实现get.put文件等功 ...
- PYTHON学习之路_PYTHON基础(6)
学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...
- PYTHON学习之路_PYTHON基础(4)
学习内容: 1.Python函数的基本语法 2.Python函数的返回值与变量 3.Python嵌套函数 4.Python递归函数及实例(二分查找) 5.Python匿名函数 6.Python内置方法 ...
- PYTHON学习之路_PYTHON基础(3)
学习内容: 1.Python字典 2.Python集合 3.Python字符编码 4.Python文件操作 5.Python实例 一.Python字典 1.定义: dic1={'name':'alex ...
- PYTHON学习之路_PYTHON基础(2)
学习内容: 1.Python数据类型与变量 2.Python字符串 3.Python列表 4.Python while循环 5.Python字典 6.Python实例 一.Python数据类型与变量 ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
随机推荐
- Android之数据库升级onUpgrade降级onDowngrade
借用API文档解释: public abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 当数据库需要升 ...
- Eclipse创建Maven时提示错误could not resolve archetype
今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured ...
- js-我理解的闭包
一:什么是闭包 <JS高级程序设计>指出:闭包是指有有权访问另一个函数作用域中变量的函数. 二:闭包的使用 闭包的常见的创建方式是 子函数嵌套在父函数的内部,这样,子函数就可以访问父函数中 ...
- Visual Studio 2010 插件之Resharper
这一系列不是对每个功能的中文帮助,而是我对开发中可能涉及的功能需求,利用Resharper来完成.有些是Visual Studio有的,但是做的不好,有些是没有而Resharper发明的.总的目的都只 ...
- python集合(set)操作
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...
- Volley简单封装
public interface IRequest { /** * 获取头部信息 * * @return */ public Map<String, String> getHeaderMa ...
- PHP移动文件指针ftell()、fseek()、rewind()总结
在对文件进行读写过程中,有时需要在文件中跳转.同不同位置读取,以及将数据写入到不同的位置.例如,使用文件模拟数据库保存数据,就需要移动文件指针.指针的位置是以从文件头开始的字节数度量的,默认以不同模式 ...
- php版本引起的const问题
刚刚遇到一个问题,类中定义了一个常量: const USER = ['aa', 'bb', 'cc']; 在类中的静态函数中调用以上常量不会出错.网站中所有的网页均能正常打开. 而当push到线上后, ...
- SQLserver聚集表、堆和索引
SQL Server 表使用下列两种方法之一来组织其分区中的数据页: 聚集表是有聚集索引的表.数据行基于聚集索引键按顺序存储.聚集索引按 B 树索引结构实现,B 树索引结构支持基于聚集索引键值对行进行 ...
- Linux学习(一):从图形界面进入命令行及命令行进入图形界面
一.从图形界面进入命令行 最近脑洞大开,想接触一下linux.本人设备是win7,于是安了VMware(12.0.0)虚拟机,在安Linux(我用的CentOS 6.3 64)时不太会搞,跟据提示(英 ...