首页 > 代码库 > python学习-基础-day1
python学习-基础-day1
17年4月中旬在51cto上报名了老男孩PYTHON高级自动化开发的课程,此随笔为记录学习中的有意义的东西(自我感觉有意义)
一、pycharm的基本配置与使用
之前自学过一段时间,一直用的自带的IDLE和notepad++,现在开始用pycharm,但是很不熟悉,随着使用不断补充和修改
开始可以设置字体、样板等,网上都很容易搜到
1.setting--editor--file and code template ,找到Python script,可以为新建的Python文件定义模板,只有再次新建才会生效。
2.常用快捷键:
ctril + D 复制当前行
ctril + Y 删除当前行
ctril + / 为当前行注释/取消注释
TAB,为当前选中部分都增加一个TAB,相反的话,SHIFT + TAB
二、基本知识点
2.1 input()默认输入的都是字符串格式,如果输入数字需要比较大小的话,可以int(input())
2.2 Python 2.x如果需要使用中文的话,需要声明# -*- coding: utf-8 -*- 因为默认使用的是ASCII
2.3 continue 和 break
for
i
in
range
(
10
):
if
i<
5
:
continue
#不往下走了,直接进入下一次loop
print
(
"loop:"
, i )
for
i
in
range
(
10
):
if
i>
5
:
break
#不往下走了,直接跳出整个loop
print
(
"loop:"
, i )
三、 while、for循环的例子:
猜年龄,猜对了,跳出整个循环,共3次机会,都错了,提示是否继续,否的话,直接推出。根据语境想了三个例子:
第一个是视频上讲的,最简洁
cq_age = 27
n = 0
while n < 3: #只要n小于3,也就是0,1,2,三次都会执行while,否则执行最后的else.
n +=1
age = int(input("please enter your guess:"))
if age < cq_age:
print("think bigger")
elif age > cq_age:
print("thinker smaller")
else:
print("you got it")
break #跳出整个while循环,属于非正常执行完while,所以不会执行最后的else
if n == 3:
answer = input("do you wangt conntinue ?")
if answer != ‘n‘: #只要你不回答n,默认同意继续,令变量n再次赋值为0,如果是n的话,那么n==3,循环就为False了,执行最后的else
n = 0
else:
print("you have tried 3 times ,fuck off")
第二个是未看视频前,自己琢磨的,好low:
cq_age = 27
n = 0
while n == 0: #大循环,n只要等于0为真,这个巡检就一直执行
while n < 3: #小循环
n +=1
age = int(input("please enter your guess:"))
if age < cq_age:
print("think bigger")
elif age > cq_age:
print("thinker smaller")
else:
print("you got it")
break #break会跳出当前的循环,这里只跳出小循环,所以后面if语句判断年龄猜对的话,继续break大循环,结束,不然只跳出小循环的话,大循环n等于0接着不满足条件还要执行最后的else,不合要求
else:
answer = input("you have tried 3 times ,do you want continue ?")
if answer != ‘n‘:
n = 0 #保证大循环的n等于0条件仍然满足,继续大循环一次,那么小循环也会继续执行
#else:
# break
if age == cq_age: #对应上面的第一个break,
break
else:
print("bye ,lowerB")
用for写的
cq_age = 27
n = 0
while True: #试了3次且答复不继续或答对了才会退出,否则一直123的循环
for n in range(3):
age = int(input("please enter your guess:"))
if age < cq_age:
print("think bigger")
elif age > cq_age:
print("thinker smaller")
else:
print("you got it")
break
else:
answer = input("you tried 3 times,do you want continue ?")
if answer == ‘n‘:
print(‘bye‘)
break #此break对应的是紧邻的else,不在for循环内,所以跳出的是while循环
if age == cq_age:
break #也是跳出while循环
四、作业:
4.1 编写登陆接口
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定(就是锁定后,再登录,就提示用户已经锁定。所以每次登陆前都要做一次是否锁定的检查)
大体思路:用户名:密码存在一个字典user_pass里,锁定的用户存在一个列表lock_user里,输入用户名后,检查用户名是否在lock_user里,在的话,提示被锁定,退出;没有锁定的话,检查用户名是否在
字典里,不在的话提示无效的用户名,在的话再输入密码,验证三次不成功,将用户添加到lock_user列表里。之后用文件替代这些表,每次运行先读取这些文件。
#########start:create two files named userpass and lockuser###########
# file1 = open(‘userpass.txt‘,‘w‘)
# file1.write("{‘cui qing‘:‘abc123‘,‘zhangsan‘:‘abc111‘,‘lisi‘:‘aaa123‘,‘wangwang‘:‘123ert‘,‘ppp‘:‘qwer‘}")
# file1.close()
# print(user_pass)
# file2 = open(‘lockuser.txt‘,‘w‘)
# file2.write("[‘zhangsan‘,‘lisi‘]")
# file2.close()
#############end################################################
file1 = open(‘userpass.txt‘,‘rt‘)
line1 = file1.read()
user_pass = eval(line1)
file2 = open(‘lockuser.txt‘,‘rt‘)
line2 = file2.read()
lock_user = eval(line2) #eval()可以将字符串转换为表达式,因为从文本读取的是一个str格式,e转换后变成dict
# user_pass = {‘cui qing‘:‘abc123‘,‘zhangsan‘:‘abc111‘,‘lisi‘:‘aaa123‘}
# print (user_pass[‘cui qing‘])
# lock_user = [‘zhangsan‘,‘lisi‘]
# print(lock_user)
n = 0
while True:
username = input("please enter your username:")
if username in lock_user:
print(‘your account is locked!‘)
break #退出while true循环
elif username in user_pass:
print(‘your account is true‘)
while n < 3:
n += 1
password = input(‘enter your password:‘)
if password == user_pass[username]:
print("welcome %s"%username)
break #退出小循环
else:
print("your password is wrong")
else:
print(‘‘‘wrong password\nyour account is locked.‘‘‘)
lock_user.append(username)
lock_user_str = str(lock_user)
file2 = open(‘lockuser.txt‘, ‘w‘)
file2.write(lock_user_str)
file2.close()
print (lock_user)
break #退出while true循环
if password == user_pass[username]:
break #退出while true循环
else:
print(‘invalid username‘)
python学习-基础-day1