1、if语句学习
a=0
while a<10:
if(a%2==0):
print(a,"是偶数",end=',')
else:
print(a,"是奇数",end=',')
a=a+1
2、斐波那契额数组
a, b = 0, 1
while b < 100:
print(b)
a, b = b, a+b
3、while循环
# 该实例演示了数字猜谜游戏
number = 7
guess = -1
print("数字猜谜游戏!")
while guess != number:
guess = int(input("请输入你猜的数字:"))
if guess == number:
print("恭喜,你猜对了!")
elif guess < number:
print("猜的数字小了...")
elif guess > number:
print("猜的数字大了...")
#---------------------------------------------------------
#while循环2
a=1
b=0
while a<=100:
b=a+b
a=a+1
print(b)
#for
for x in range(100):
print(x,end=",")
4、列表的常用函数
>>> a = [66.25, 333, 333, 1, 1234.5]
>>> print(a.count(333), a.count(66.25), a.count('x'))
2 1 0
>>> a.insert(2, -1)
>>> a.append(333)
>>> a
[66.25, 333, -1, 333, 1, 1234.5, 333]
>>> a.index(333)
1
>>> a.remove(333)
>>> a
[66.25, -1, 333, 1, 1234.5, 333]
>>> a.reverse()
>>> a
[333, 1234.5, 1, 333, -1, 66.25]
>>> a.sort()
>>> a
[-1, 1, 66.25, 333, 333, 1234.5]
5、文件操作
#文件操作
#!/usr/bin/python3
# 打开一个文件
f = open("d:/foo.txt", "a")
f.write( "Python 是一个非常好的语言。\n是的,的确非常好!!\n" )
#关闭打开的文件
f.close()
5.1文件操作
#修改文件名
#注意, 如果文件不存在,则会导致异常, 无法进行
os.rename(src, dst) #重命名文件或目录,从 src 到 dst
os.renames("d:/123.txt", "d:/1231111.txt") #递归地对目录进行更名,也可以对文件进行更名。
#删除空文件夹, 如果非空或者不存在,都会抛出错误
os.rmdir("d:/1231111")
#---------------------------------------------------------
#列出当前路径下目录
import os, sys
print ("当前目录为: %s" %os.getcwd())
# 列出目录
print ("目录为: %s"%os.listdir(os.getcwd()))
#当前路径创建文件夹,如果已经存在, 则会导致异常, 所以最好提前 判断一下
os.system('mkdir today')
#---------------------------------------------------------
#os模块
#获取目录下所有文件夹名称
for root, dirs, files in os.walk("d:\\", topdown=False):
for name in dirs:
print(os.path.join(root, name))
#---------------------------------------------------------
#打印所有,包含文件夹,文件
for rootdir, dirNames, filenames in os.walk("d:\\merge"):
print(rootdir, dirNames, filenames)
#---------------------------------------------------------
#遍历文件夹下所有文件冰返回带有绝对路径的值
for root, dirs, files in os.walk("d:\\merge", topdown=False):
for name in files:
print(os.path.join(root, name))
'''
结果如下
d:\merge\999\foo.txt
d:\merge\999\foo.txt.txt
d:\merge\1.py
d:\merge\123.xlsx
d:\merge\output.xls
'''
#遍历文件夹下所有文件冰返回文件名
for root, dirs, files in os.walk("d:\\merge", topdown=False):
for name in files:
print(name)
'''
foo.txt
foo.txt.txt
1.py
123.xlsx
output.xls
'''
#---------------------------------------------------------
#os文件路径、文件名、后缀分割
import os
file_path = "E:/tt/abc.py"
filepath,fullflname = os.path.split(file_path)
fname,ext = os.path.splitext(fullflname)
'''
运行结果:
filepath为文件的目录,即E:/tt
fullflname为文件名的全名,即abc.py
fname为文件的名字,即abc
ext为文件的扩展名,即.py
'''
#---------------------------------------------------------
#os模块 path
import os
# os.path.join() 将分离的部分合成一个整体
filename = os.path.join('/home/ubuntu/python_code', 'split_func')
print
filename
# 输出为:/home/ubuntu/python_code/split_func
# os.path.splitext()将文件名和扩展名分开
fname, fename = os.path.splitext('/home/ubuntu/python_code/split_func/split_function.py')
print
'fname is:', fname
print
'fename is:', fename
# 输出为:
# fname is:/home/ubuntu/python_code/split_func/split_function
# fename is:.py
# os.path.split()返回文件的路径和文件名
dirname, filename = os.path.split('/home/ubuntu/python_code/split_func/split_function.py')
print
dirname
print
filename
# 输出为:
# /home/ubuntu/python_code/split_func
# split_function.py
# split()函数
# string.split(str="", num=string.count(str))[n]
# str - - 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
# num - - 分割次数。
# [n] - - 选取的第n个分片
string = "hello.world.python"
print
string.split('.') # 输出为:['hello', 'world', 'python']
print(string.split('.', 1)) # 输出为:['hello', 'world.python']
print(string.split('.', 1)[0]) # 输出为:hello
print(string.split('.', 1)[1]) # 输出为:world.python
string2 = "hello<python.world>and<c++>end"
print(string2.split("<", 2)[2].split(">")[0]) # 输出为:c++
#————————————————————————
6、数据库操作
#数据库操作
import xlrd
import pymysql
# 打开数据所在的路径表名
book = xlrd.open_workbook('d:/py/nametest.xlsx')
# 这个是表里的sheet名称(注意大小写)
sheet = book.sheet_by_name('Sheet1')
# 建立一个 MySQL连接
conn = pymysql.connect(
host='192.168.0.8',
user='root',
passwd='123456',
db='qq',
port=3306,
charset='utf8'
)
# 获得游标
cur = conn.cursor()
# 创建插入sql语句
query = 'insert into test1(id,name,age)values(%s,%s,%s)'
# 创建一个for循环迭代读取xls文件每行数据的,
# 从第二行开始是要跳过标题行
# 括号里面1表示从第二行开始(计算机是从0开始数)
for r in range(1, sheet.nrows):
# (r, 0)表示第二行的0就是表里的A1:A1
id = sheet.cell(r, 0).value
name = sheet.cell(r, 1).value
age = sheet.cell(r, 2).value
values = (id, name, age)
# 执行sql语句
cur.execute(query, values)
# close关闭文档
cur.close()
# commit 提交
conn.commit()
# 关闭MySQL链接
conn.close()
# 显示导入多少列
columns = str(sheet.ncols)
# 显示导入多少行
rows = str(sheet.nrows)
print('导入'+columns+'列'+rows+'行数据到MySQL数据库!')
7、random()随机数函数
这个函数可以用来生成随机浮点数、整数、字符串,基本常用的随机用法都可以做到,常见的用法有如下几种
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import random
import string
# 随机整数:
print random.randint(1,50)
# 随机选取0到100间的偶数:
print random.randrange(0, 101, 2)
# 随机浮点数:
print random.random()
print random.uniform(1, 10)
# 随机字符:
print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')
# 多个字符中生成指定数量的随机字符:
print random.sample('zyxwvutsrqponmlkjihgfedcba',5)
# 从a-zA-Z0-9生成指定数量的随机字符:
ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))
print ran_str
# 多个字符中选取指定数量的字符组成新字符串:
print ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))
# 随机选取字符串:
print random.choice(['剪刀', '石头', '布'])
# 打乱排序
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print random.shuffle(items)