python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
在linux 下创建一个文件叫hello.py,并输入
[root@wangxian pylearn]# cat hello.py
print("Hello World!")
[root@wangxian pylearn]# python hello.py
Hello World!
name = "Wang Xuan"
声明了一个变量name,值为:"Wang Xuan"
变量定义的规则
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import getpass
username =input("username:")
password =getpass.getpass("password:")
print(username,password)
Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import sys
print(sys.argv)
#输出
$ python test.py helo world
['test.py', 'helo', 'world'] #把执行脚本时传递的参数获取到了
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os
os.system("df -h") #调用系统命令
完全结合一下
import os,sys
os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行
#!/usr/bin/env python
#python startup file
import sys
import readline
import rlcompleter
import atexit
import os
#tab completion
readline.parse_and_bind('tab: complete')
#history file
histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
try:
readline.read_history_file(histfile)
except IOError:
pass
atexit.register(readline.write_history_file, histfile)
del os, histfile, readline, rlcompleter
1、数字
2 是一个整数的例子。
长整数 不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?。
2、布尔值
真或假
1 或 0
3、字符串
"hello world"
万恶的字符串拼接:
python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。
字符串格式化输出
name = "alex"
print "i am %s " % name
#输出: i am alex
PS: 字符串是 %s;整数 %d;浮点数%f
字符串常用功能:
移除空白
分割
长度
索引
切片
4、列表
创建列表:
name_list = ['alex', 'seven', 'eric']
或
name_list = list(['alex', 'seven', 'eric'])
基本操作:
索引
切片
追加
删除
长度
切片
循环
包含
5、元组(不可变列表)
创建元组:
ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))
6、字典(无序)
创建字典:
person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})
常用操作:
索引
新增
删除
键、值、键值对
循环
长度
算数运算:
比较运算:
赋值运算:
逻辑运算:
成员运算:
身份运算:
位运算:
运算符优先级:
例一
# 验证用户名和密码
# 如果错误,则输出用户名或密码错误
# 如果成功,则输出 欢迎,XXX!
user = 'wangxian'
passwd = 'shajiba'
username = input("username:")
password = input("password:")
if user == username:
print("username is correct...")
if passwd == password:
print("welcome login...")
else:
print("password is invalid")
else:
print("username is invalid,get out!")
例二
#!/usr/bin/env python
# -*- coding:utf-8 -*-
age = 22
guess_num = int(input("input your guess num:"))
if guess_num ==age:
print("congratulations,you got it.")
elif guess_num > age:
print("think smaller!")
else:
print("think big!")
外层变量,可以被内层代码使用
内层变量,不应被外层代码使用
最简单的循环10次
#_*_coding:utf-8_*_
for i in range(10):
print("count:", i )
输出:
count: 0
count: 1
count: 2
count: 3
count: 4
count: 5
count: 6
count: 7
count: 8
count: 9
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
for i in range(10):
if i<5:
continue #不往下走了,直接进入下一次count
print("count:", i )
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
for i in range(10):
if i>5:
break #不往下走了,直接跳出整个count
print("count:", i )
死循环
count = 0
while True:
print("停不下来...",count)
count +=1
上面的代码循环100次就退出
count = 0
while True:
print("停不下来...",count)
count +=1
if count == 100:
print("给我停下来..")
break
回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_age = 28
count = 0
while count < 3:
user_input = int(input("input your guess num:"))
if user_input == my_age:
print("Congratulations, you got it !")
break
elif user_input < my_age:
print("think bigger!")
else:
print("think smaller!")
count += 1 #每次loop 计数器+1
print("猜这么多次都不对,你个笨蛋.")
为可迭代的对象添加序号
li = [11,22,33]
for k,v in enumerate(li, 1):
print(k,v)
指定范围,生成指定的数字
print range(1, 10)
#结果:[1, 2, 3, 4, 5, 6, 7, 8, 9]
print range(1, 10, 2)
#结果:[1, 3, 5, 7, 9]
print range(30, 0, -2)
#结果:[30, 28, 26, 24, 22, 20, 18, 16, 14, 12, 10, 8, 6, 4, 2]
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
进制
二进制,01
八进制,01234567
十进制,0123456789
十六进制,0123456789ABCDEF 二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1
计算机内存地址和为什么用16进制?
为什么用16进制
1、计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示)
2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便
3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好
4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算
16进制用在哪里
1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。
2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式
3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。