#!/usr/bin/python3
# 第一个注释
print ("Hello, Python!")
'''
第三注释
第四注释
'''
python最具特色的就是使用缩进来表示代码块,不需要使用大括号({})。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数
paragraph = """这是一个段落,
可以由多行组成"""
python允许处理unicode字符串,加前缀u或U, 如 u"this is an unicode string"。
通过在字符串前加r或R。 如 r"this is a line with \n" 则\n会显示,并不是换行。
Python可以在同一行中使用多条语句,语句之间使用分号(;)分割
print 默认输出是换行的 print( x, end=" " ) # 不换行输出
Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这这些语句内定义的变量,外部也可以访问
当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal(外层非全局作用域)关键字了。类似PHP
import somemodule
for i in sys.argv:
print (i)
while b < 10:
print(b)
list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
for x in it:
print (x, end=" ")
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
def printinfo( name, age = 35 ): #默认参数
def functionname([formal_args,] *var_args_tuple ): #不定长参数
匿名函数
sum = lambda arg1, arg2: arg1 + arg2;
print ("相加后的值为 : ", sum( 10, 20 ))
def example(anything):
'''形参为任意类型的对象,
这个示例函数会将其原样返回。
'''
return anything
不带参数值的return语句返回None
sys.argv 是命令行参数列表。sys.argv[0] 表示脚本名
len(sys.argv) 是命令行参数个数
print ('参数列表:', str(sys.argv))
def main(argv):
inputfile = ''
outputfile = ''
try:
opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
except getopt.GetoptError:
print ('test.py -i -o ')
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print ('test.py -i -o ')
sys.exit()
elif opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
print ('输入的文件为:', inputfile)
print ('输出的文件为:', outputfile)
if __name__ == "__main__":
main(sys.argv[1:])
列表 vec = [2, 4, 6]
元组和序列basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
集合a = set('abracadabra')
理解字典的最佳方式是把它看做无序的键=>值对集合 tel = {'jack': 4098, 'sape': 4139}
字符串:
print ("var2[1:5]: ", var2[1:5])
* 重复输出字符串
[]通过索引获取字符串中字符
a[1:4] 截取字符串中的一部分
in/not in 如果字符串中是否包含给定的字符
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
str.format(),
encode(encoding='UTF-8',errors='strict')
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。
find(str, beg=0 end=len(string))
index(str, beg=0, end=len(string)) rindex( str, beg=0, end=len(string))
isalnum() isalpha() isdigit() islower() isnumeric()
split(str="", num=string.count(str)) 以 str 为分隔符截取字符串
join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符
len(string)
lower()
replace(old, new [, max])
rstrip() strip([chars]) 删除字符串字符串末尾的空格
startswith(str, beg=0,end=len(string))
# Python 字典类型转换为 JSON 对象
data = {
'no' : 1,
'name' : 'Runoob',
'url' : 'http://www.runoob.com'
}
json_str = json.dumps(data)
# 将 JSON 对象转换为 Python 字典
data2 = json.loads(json_str)
print ("data2['name']: ", data2['name'])
# 写入 JSON 数据
with open('data.json', 'w') as f:
json.dump(data, f)
# 读取数据
with open('data.json', 'r') as f:
data = json.load(f)
import time; # 引入time模块
ticks = time.time()
print ("当前时间戳为:", ticks) # 1459996086.7115328
localtime = time.localtime(time.time())
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
os.chdir(path)
os.chmod(path, mode)
os.chroot(path)
os.listdir(path)
os.unlink(path)
os.utime(path, times)
os.system('cat /etc/passwdqc.conf')
output = os.popen('cat /proc/cpuinfo')
同时返回结果和运行状态,commands模块:
input("\n\n按下 enter 键后退出。")
Python 调用 C/C++ (base)。源码中加入封装函数编译成SO,PYTHON中IMPORT调用
调用SO文件:from ctypes import *
test = cdll.LoadLibrary(" ./certificate.so ")
import random
print(random.randint(0,9))
sys.stderr.write('Warning, log file not found starting a new one\n')
# 写文件
with open("test.txt", "wt") as out_file:
out_file.write("该文本会写入到文件中\n看到我了吧!")
# Read a file
with open("test.txt", "rt") as in_file:
text = in_file.read()
print(text)
>>> help(max) 打印输出一个函数的文档字符串
面向对象
class MyClass(Base1, Base2, Base3):
"""一个简单的类实例"""
i = 12345
__secretCount = 0 # 私有变量
#两个下划线开头,声明该属性为私有
def f(self):
return 'hello world'
def __foo(self): # 私有方法
print('这是私有方法')
def __init__(self):
self.data = []
def __del__ :
# 实例化类
x = MyClass()
self代表类的实例,而非类
类方法必须包含参数 self, 且为第一个参数
# 访问类的属性和方法
print("MyClass 类的属性 i 为:", x.i)
print("MyClass 类的方法 f 输出为:", x.f())
import _thread
import time
# 为线程定义一个函数
def print_time( threadName, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print ("%s: %s" % ( threadName, time.ctime(time.time()) ))
# 创建两个线程
try:
_thread.start_new_thread( print_time, ("Thread-1", 2, ) )
_thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
print ("Error: 无法启动线程")
while 1:
pass
class myThread (threading.Thread):
def __init__(self, threadID, name, counter):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.counter = counter
def run(self):
print ("开始线程:" + self.name)
print_time(self.name, self.counter, 5)
print ("退出线程:" + self.name)
def print_time(threadName, delay, counter):
while counter:
if exitFlag:
threadName.exit()
time.sleep(delay)
print ("%s: %s" % (threadName, time.ctime(time.time())))
counter -= 1
# 创建新线程
thread1 = myThread(1, "Thread-1", 1)
thread2 = myThread(2, "Thread-2", 2)
# 开启新线程
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print ("退出主线程")
python语法df
转载文章标签 python语法df python的基础语法 字符串 json Python 文章分类 Python 后端开发
下一篇:nginx 连接频繁拒绝
-
df python 类型 python里面的df
Python数据分析pandas入门!(附数据分析资料)DataFrame生成方式:1、从另一个DataFrame创建。2、从具有二维形状的NumPy数组或数组的复合结构生成。3、使用Series创建。4、从CSV之类文件生
df python 类型 python数据分析df 数据 数据结构 Group