初识Python的日子day1
#!/usr/bin/env python
# -*- coding:UTF-8 -*-
print “hello world!”
#我就拿一句“你好世界”,当作开启我Python世界的篇章吧。作为一个小白级纯新手有很多头疼和挣扎的时候,也希望多年后自己再看到这段话的感受。
注:Windows和linux上所使用的版本为,2.75+以上版本
下面是我python学习的记录总结
#多行注释 (三引号为多行注释)
''' 内容 '''
#导入功能模块
import sys
#变量的定义
name1 = "leyno"
name2 = name1
#查看变量的内存地址
id(name1),id(name2)
#查看变量类型
print type(a)
#整数字符串转换为对应的整数
int('12')
#小数字符串转换为对应小数
float('12.34')
#数字转换为字符串
str(123.45)
#ASCII码转换为相应字符
chr(97)
#字符转换为响应ASCII码
int('12')
#小数字符串转换为对应小数
float('12.34')
#数字转换为字符串
str(123.45)
#ASCII码转换为相应字符
chr(97)
#字符转换为响应ASCII码
ord('a')
#输入输出 (getpass模块可以实现在用户交互时输入不显示,可以用作密码输入)
raw_input("请输入:")
import getpass
pwd = getpass.getpass("")
print pwd
#if else判断用法
if a == "1" and pwd == "123":
print "ok"
else:
print "no"
#占位符
s% 字符串格式
d% 数字格式
1. name = "I am %s,age is %d" %("leyno",18)
2. name = "I am %s,%d"
name %("leyno",18)
3. name = "I am {0},age{1}"
new_name = name.format("leyno",18)
print new_name
#列表list(针对内容单个字符的操作)
name = "leyno"
下标是从0开的
name[0]
name[0:2]
name[0:]
name[-1]
#查看字符串中有多少个字符(也被成为叫列表长度)
下标是从0开的
print len(name)
print name[-1] == name[len(name)-1] (可以对比最后一个字符是否相等,老师教的具体没想好用在哪里)
#去除无用空行参数
>>>a = ' a'
>>>a.strip()
'a'
.strip()
.lstrip()去除左空格
.rstrip()去除右空格
name_list = ['leyno','wandou','xiaoxiao']
#将内容格式分割成列表形式(类似于shell下的awk功能进行内容分割)
>>>a = '111:222:333'
>>> a.split(':')
['111', '222', '333']
>>> a.split(':')
['111', '222', '333']
#列表写入追加
.append('new')
#删除列表第一段内容
del name_list[0]
#特殊方式字符串(以指定的方式进行串联字符内容)
>>>"_".join(name_list)
'leyno_wandou_xiaoxiao'
#判断列表列表内容是否为真或者为假 in not in 两种使用方式
"alex" in name_list #会返回布尔值 条件为真True 条件为假False
#判断值 is
>>> a = 1
>>> b = 2
>>> a is b
False
>>> b = 2
>>> a is b
False
#元组tuple 元组特性与列表几乎相互,但区别在于元组内容不可以修改。举例不可以修改内容例如 性别只会出现男女 一周只能定义7天这些都属于固定值
name_tuple= ("leyno","lili")
#dict字典 在python的字典中数据必须是成对的,那就是 键值对。key:value 另外字典是无序的,它是不会按照顺序排列的
dic = {
"name":'leyno',
"age":18,
}
dic.keys() #所有的key列表
dic.values() #所有的values
dic.items() #所有的信息 仅for循环使用
dic[new_key] = value #添加一个数据项(新元素)或键值对
例:
for a,k in dic.items():
print a,k
#循环语法 (在初识python脚本的时候,在linux下面临一个很棘手的问题,那就是不知道哪里错了。
并不能像shell那样有语法判断的命令等等,在这里个人总结了一个小的使用规律,就是在每一次输出的时候进行一次打印。
那就是print $上一个变量的值,这样可以有效的判断从开始执行到打印行是否存在语法或者逻辑错误。)
#for循环
name_list = ['wangya','wandou','xiaoxiao']
for ele in name_list:
if ele == "wangya":
print "ok"
break #匹配后跳出
else:
pass #默认什么都不输出
#continue本次循环不在继续执行,而是跳到上一层循环继续从上到下执行
#while循环
#条件判断True False 条件为真或者条件不为真则一直执行 但while可以多种判断形式 1>2: "wangya" in name_list: "wangya" not in name_list:
while True: #默认形式可以使用True
if ele == "wangya":
print "ok"
#文件读写
file_list = open("文件路径","模式") 等同于后者打开模式 file("文件路径","模式")
#模式(只介绍几个)
r只读
w只写,覆盖式写入
a追加式写入
r+读写
file_list.read() #将所有文件全部读取到内存
file_list.readlines() # 一次性加载所有内容到内存,并根据行分割成字符串(一般都是用的这种方式)
file_list.xreadlines() #一行一行的读 不会跑费内存
file_list.flush() #把缓冲区的内容写入硬盘 而不是等到文件关闭时才写入
file_list.write() #写入
file_list.close() #每次打开文件后必须关闭
个人练习:编写模拟linux登陆接口(仅供参考)
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #This User Login 4 5 import getpass 6 7 #set lock 8 new_lock = 0 9 10 #open name db 11 file = open('1.txt','r') 12 file_look = file.readlines() 13 for new_list in file_look: 14 new_list_str = new_list.strip() 15 new_list_spl = new_list_str.split(':') 16 new_user = new_list_spl[0] 17 new_pass = int(new_list_spl[1]) 18 file.close() 19 20 input_user = raw_input("Ubuntu1404 login:") 21 while True: 22 if input_user != new_user: 23 print "Without this '%s' user" %input_user 24 quit() 25 else: 26 input_pass = int(getpass.getpass("password:")) 27 if input_pass == new_pass and new_lock <= 2: 28 print "welcome to Ubuntu,%s" %input_user 29 break 30 else: 31 while input_pass != new_pass and new_lock <= 2: 32 new_lock = new_lock + 1 33 print "Sorry, try again.re-enter passwd for %s" %input_user 34 break 35 else: 36 if input_pass != new_pass and new_lock >= 2: 37 print "User '%s' lock please contact administrator" %input_user 38 quit()

浙公网安备 33010602011771号