python20151125
python exit() python test.py
输入输出
print('2\n2')
print(1, 2, 3)
name = input()
print(':', name)
数据类型和变量
# 注释
print(1.23e9)
print('I\'m \"OK\"')
print(r'\\\t\\') # r''不转义
print('''line1
line2
line3''') # 多行 # True False
# and or not
print(True or False) # 空值 Node # 变量 # 常量
# 在Python中,通常用全部大写的变量名表示常量
PI = 3.14159265359
# 但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变 # / // %
print('9/3', 9 / 3)
print('10//3', 10 // 3)
print('10%3', 10 % 3)
字符串和编码
#!/usr/bin/env python3
# -*- coding: utf-8 -*- #第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
#第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码
#申明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码 print("ord('A')", ord('A'))
print("ord('中')", ord('中'))
print("chr(66)", chr(66))
print("chr(25991)", chr(25991))
print("'\\u4e2d\\u6587'", '\u4e2d\u6587') print('ABC'.encode('ascii'))
print('中文'.encode('utf-8'))
print(b'ABC'.decode('ascii'))
print(b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')) print(len('ABC'))
print(len('中文'))
print(len(b'ABC'))
print(len(b'\xe4\xb8\xad\xe6\x96\x87'))
print(len('中文'.encode('utf-8'))) #%d 整数
#%f 浮点数
#%s 字符串
#%x 十六进制整数 print('Age: %s. Gender: %s %%' % (25, True))
list
#list
classmates = ['Michael', 'Bob', 'Tracy']
print(classmates)
#个数
print(len(classmates))
#最后一个元素
print(classmates[-1])
#添加
classmates.append('Adam')
print(classmates)
#指定位置添加
classmates.insert(1, 'Jack')
print(classmates)
#删除末尾的元素
classmates.pop()
print(classmates)
#删除指定位置的元素
print(classmates.pop(1))
print(classmates)
#替换
classmates[1] = 'Sarah'
print(classmates)
tuple
#tuple
#因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple
classmates = ('Michael', 'Bob', 'Tracy')
print(classmates[0]) #定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,
#因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。
t = (1)
print(t)
t = (1,)
print(t)
t = (1, 2, ['a', 'b'])
print(t) #tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。
#即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的
t[2][0] = 'x'
t[2][1] = 'y'
print(t)
循环
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name) sum = 0
for x in [1, 2,3,4,5,6,7,8,9,10]:
sum = sum + x
print(sum) sum = 0
for x in range(101):
sum = sum + x
print(sum) sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
dict
d = {
'Michael': 95,
'Bob': 75,
'Tracy': 85
}
print(d['Michael'])
#第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,
#然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。
#dict就是第二种实现方式,给定一个名字,比如'Michael',dict在内部就可以直接计算出Michael对应的存放成绩的“页码”,
#也就是95这个数字存放的内存地址,直接取出来,所以速度非常快。
d['Adam'] = 67
print(d)
print('Adam' in d)
#如果key不存在,可以返回None,或者自己指定的value
print(d.get('Thomas'))
print(d.get('Thomas', -1))
#dict内部存放的顺序和key放入的顺序是没有关系的
#和list比较,dict有以下几个特点:
#查找和插入的速度极快,不会随着key的增加而增加;
#需要占用大量的内存,内存浪费多。
#而list相反:
#查找和插入的时间随着元素的增加而增加;
#占用空间小,浪费内存很少。
set
#set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key
#无序
#重复元素在set中自动被过滤
s = set([1,2,3,1,2])
print(s) s.add(4)
print(s) s.remove(1)
print(s) s1 = set([1, 2,3])
s2 = set([2,3,4])
#交集
print(s1 & s2)
#并集
print(s1 | s2) a = ['c', 'b', 'a']
a.sort()
print(a) a = 'abc'
b = a.replace('a', 'A')
print(b, a)
python20151125的更多相关文章
随机推荐
- cadence 焊盘制作小结
因为以前一直用altium designer 话PCB,做封装的时候焊盘是不用自己操心的,但是开始用cadence以后发现好多以前不太懂的东西,需要自己画焊盘,这就导致需要了解好多自己以前不懂的东西, ...
- (转)Qt Model/View 学习笔记 (三)——Model类
Model类 基本概念 在model/view构架中,model为view和delegates使用数据提供了标准接口.在Qt中,标准接口QAbstractItemModel类中被定义.不管数据在底层以 ...
- 【NHibernate】配置- sql打印
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <pr ...
- 类的本质、description方法、SEL、NSLog输出增强
一.类的本质 1.类也是个对象 其实类也是一个对象,是Class类型的对象,简称“类对象” Class类型的定义 typedef struct objc_class *Class; 类名就代表着类对象 ...
- HelloWorld和数据绑定
HelloWorld和数据绑定 目录导读: AngularJS 系列 学习笔记 目录篇 前言: 好记性不如烂键盘,随笔就是随手笔记,希望以后有用. 本篇目录: 1. Hello World 2. An ...
- C# - dynamic 类型
C#4引入dynamic关键字,定义变量时,可以不初始化它的值. dynamic类型仅在编译期间存在,在运行期间会被System.Object类型替代. dynamic myDynamicVar; m ...
- iOS9下修改回HTTP模式进行网络请求
升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错 The resource could not be loaded because the App Transport Sec ...
- linux复制多个文件到文件夹
linux复制多个文件到文件夹 cp file1 file2 file3 directory即将文件file1 file2 file3复制到directory
- Visual Leak Detector 2.2.3 Visual C++内存检测工具
Visual Leak Detector是一款免费的.健全的.开源的Visual C++内存泄露检测系统.相比Visual C++自带的内存检测机制,Visual Leak Detector可以显 ...
- java Tomcat数据库连接池
1. 在tomcat服务器目录下面的conf中找到一个叫Context.xml的配置文件,在其中加入以下代码 <Resource name="jdbc/books" aut ...