Day1

一、Python数据类型

字符串、数字、元组(tup)、list(列表)、dict(字典)

1.数字操作:

1.1四则运算:+ - * / %(求余)

>>>print 2+2
4
>>>print 1+2*4
9
>>>print 1.0/2.0
0.5
>>>print 2%4
2

2.字符串操作:

2.1.字符串:用单引号或者双引号引起来

>>>print ‘hello‘ 
hello

2.2.字符串拼接:用+号将多个字符串拼接起来

>>>print ‘hello ‘+‘world‘
hello world

2.3.字符串转义:在Python中字符串使用单引号或双引号括起来,如果字符串内部出现了需要转义的字符(例如:"和‘本身),只需要在字符前添加转义字符:\即可

常用转义字符:

>>> print ‘My name\‘s lilei‘
My name‘s lilei

3.变量:变量值可以是字符串、数字、list、dict、tup

>>>x = ‘hello world‘
>>>print x
hello world
>>>age = 20
>>>print age
20

4.获取用户输入:raw_input()#python内置函数

#代码
>>>x = raw_input(‘please input a string: ‘)
>>>print ‘hello ‘+x
#输入
world
输出 hello world

5.字符串格式化:

常用类型:

%s:字符串

%d:整型

%f:浮点型

%x:十六进制

%%:表示%本身

>>>name = ‘liuyang‘
>>>age = 26
#数字和字符串不能直接相加
#26为数字,不能与字符串相连,所以我们要将类型转换成字符串
>>>print ‘hello ‘+name+‘,and i am ‘+str(age)+‘ years old‘
hello liuyang,and i am 26 years old
#字符串格式化%s 引入变量 后边%结尾意思是左边字符串结束了现在要代入变量)
>>>print ‘hello %s,and i am %s years old‘ %(name,age)
hello liuyang,and i am 26 years old
#用%s换成%d占位符,代表一个数字
>>>print ‘hello %s,and i am %d years old‘ % (name,age)
hello liuyang,and i am 26 years old

6.数据类型

int:整型

str:字符串

float:浮点型

bool:布尔型

>>>x = raw_input(‘print input a number: ‘)
>>>y = raw_input(‘print input a number2: ‘)
>>>print int(x)+int(y)
#输入x 3 输入y 4
#输出 7

7.Python内置函数strip():

.strip()#消除字符串两边空格

#默认是空格,可以是别的字符

.strip(‘\n‘)

#消除换行符

.rstrip()#消除字符串右边空格

.lstrip()#消除字符串左边空格

.upper()大写转小写

.upper().lower() 小写转大写

>>>name = ‘  liuyang  ‘
>>>print name.strip()
liuyang
>>>print name.lstrip()
liuyang  
>>>print name.rstrip()
  liuyang
>>>print name.strip().upper()
LIUYANG
>>>print name.strip().upper().lower()
liuyang

8.Python内置函数type():

type()

判断数据类型

>>>name = ‘liuyang‘
>>>print type(name)
str

9.流程控制

9.1.布尔值:True,False

True:表示真

False:表示假

>>>4>3
True
>>>not 0
True
>>>5>6
False

9.2.逻辑运算:and or not

#A  and B 就是A 和B都是TRUE的时候才是TRUE,其它情况都是false

#A or B 就是A 和B只要有一个是TRUE就是TRUE,条件至成立一个即为TRUE

#not  A如果A是FALSE返回TRUE,如果A 是True返回FALSE

注:‘and’的优先级高于‘or’

9.3.if else判断:

if 条件判断(真/假):条件为真执行if后面语句

else:#条件为假执行else语句

条件为假的情况:

#空字符串

#空列表

#数字0

#空字典都是

#none

>>>if ‘‘:
>>>   print ‘123‘
>>>else:
>>>   print ‘1231343‘
1231343
#
>>>if not 0:
>>>   print ‘add‘
>>>else:
>>>   print ‘dd‘
add
#
>>>list = []
>>>if list:
>>>   print ‘list不为空为真‘
>>>else:
>>>   print ‘aaa‘     
aaa
#
>>>dict = {}
>>>if dict:
>>>   print ‘123132‘
>>>else:
>>>   print ‘af‘     
af

9.4.while循环:

#while 条件成立:

#      如果情况是TRUE,代码持续执行;不成立即为False

#while循环直到情况是false才会退出

#while True一直循环,break手动终止

break和continue都是针对for循环和while循环的

break:跳出循环

#continue:跳过本次循环

>>>i = 0
>>>while i<20:
>>>    print i
>>>  i = i + 1
#
>>>name = ‘‘
# 定义name为空,while判断name非空是True,代码执行,
# name空为假,条件判断FALSE退出print name
>>>while not name:
>>>    name=raw_input(‘input your name‘)
>>>print ‘hello ‘+name

9.5.for 循环序列:专门针对list,dict,以后用到比较多的流程控制

>>>for name in [‘2‘,‘3‘,‘4‘]:
>>>   print name
2 
3 
4

练习1:输入一个数字,不为0时打印所有数字的和,如果数据输入是0直接退出

#/usr/bin/python
#coding=utf-8

sum = 0
while True:
num = int(raw_input(‘input a number‘))
if num == 0:
break
else:
sum = sum + int(num)
print sum
执行脚本:输入23 22 22 输入0 退出脚本,打印输入数字总和67

练习2:本金是10000,年利率是3.25%,求多少钱后,存款能翻翻

#/usr/bin/python
#coding=utf-8
money=10000
lixi=0.0325
y=0
#如果money小于20000条件为true则循环一直执行,flase跳出循环 即money大于20000也就是本金翻翻
while money <= 20000:
money=money*(1+lixi)
y = y + 1
print money,y
#执行脚本
20210.6986788存款翻翻  22年

练习3:打印最大的两个值

#/usr/bin/python
#coding=utf-8
unsort_num = [1,2,3,444,555,3234,35,65535,65535,21]
#print unsort_num
max_num1 = 0
max_num2 = 0
for i in unsort_num:
if i > max_num1:
max_num2 = max_num1
max_num1 = i
elif i > max_num2:
max_num2 = i
print "max num is:%s,second max num is: %s " %(max_num1,max_num2)
#打印结果
max num is:65536 ,second max num is 65535

练习4:用户登录,验证用户及密码,密码输入错误三次退出登录

name = raw_input(‘input your name: ‘).strip()
if name == ‘liuyang‘:
count = 0
while count<3:
passwd = raw_input(‘input your passwd: ‘)
if passwd == ‘123456‘:
print‘User %s login sucessfully !‘%(name)
break
else:
print ‘Wrong passwd,please input again !‘
count +=1
print ‘passwd wrong three times,the count %s is locked !‘%(name)
else:
print "User %s not exists,please confirm !"%(name)

练习5:输入一个数字,与50比较,大于50提示输入数字太大,小于50,提示输入数字太小,三次机会,超过三次,返回输入错误

优化前:

#/usr/bin/python
#coding=utf-8
compare_num = 50
count = 0
while count<=3:
input_num = int(raw_input(‘input a number: ‘))
if input_num == compare_num:
print ‘输入数字正确‘
break
elif input_num > compare_num:
print ‘输入的数字%s大于%s,还有%d次机会‘%(input_num,compare_num,3-count)
else:
print ‘输入的数字%s小于%s,还有%d次机会‘%(input_num,compare_num,3-count)
count +=1

#优化后

#
#/usr/bin/python
#coding=utf-8
import sys
compare_num = 50
count = 0
while count<=3:
input_num = raw_input(‘input a number: ‘)
try:
num = int(num)
except Exception,e:
print ‘输入非法‘
sys.exit()
time = 3-count
if input_num > compare_num:
print ‘输入的数字太大,还有%s次机会‘%(time)
elif input_num < compare_num:
print ‘输入的数字太小,还有%s次机会‘%(time)
else:
print ‘输入数字正确‘
break
count +=1

第一次作业:

优化前:

#/usr/bin/python
#coding=utf-8

#实现用户名密码登陆验证
# 1:判断用户名密码是否正确,正确则打印欢迎信息,错误则输出具体错误原因信息
# 2:用户可以连续输入三次密码。超过三次则锁定用户
# 3:密码位数必须超过6位

# 格式:\033[显示方式;前景色;背景色m
#   说明:
#
#   前景色            背景色            颜色
#   ---------------------------------------
#     30                40              黑色
#     31                41              红色
#     32                42              绿色
#     33                43              黃色
#     34                44              蓝色
#     35                45              紫红色
#     36                46              青蓝色
#     37                47              白色
#
#   显示方式           意义
#   -------------------------
#      0           终端默认设置
#      1             高亮显示
#      4            使用下划线
#      5              闪烁
#      7             反白显示
#      8              不可见
#
#   例子:
#   \033[1;31;40m    <!--1-高亮显示 31-前景色红色  40-背景色黑色-->
#   \033[0m          <!--采用终端默认设置,即取消颜色设置-->]]]

#思路 关键信息
#用户名 密码(必须超过6位)3次验证,返回具体错误信息,超过三次锁定用户

usr_name = ‘liuyang‘
usr_pwd = ‘123456‘

user_name = raw_input(‘Please enter your user name:‘)
if user_name == usr_name:
	count = 1
	while count <=3:
		user_pwd = raw_input(‘Please enter your user passwd: ‘)
		if user_pwd == usr_pwd:
			print ‘\033[1;32;40mLogin sucessfully! \nHey %s,Welcome!\033[0m‘%(user_name)
			break
		elif len(user_pwd)<6:
			print ‘\033[1;31;40mPassword must be more than six,you have %s times,please input again!\033[0m‘%(3-count)
		else:
			print ‘\033[1;31;40mWrong password,you have %s times!\033[0m‘%(3-count)
		count += 1
	else:
		print ‘\033[1;31;40mUser name or password wrong input more than three times, the account will be locked!!!\033[0m‘
else:
	print ‘Sorry,user %s not exists,please confirm!‘%(user_name)

优化后:

#/usr/bin/python
#coding=utf-8
#定义usr_name usr_pwd初始值

‘‘‘
思路
1. 设定初始用户密码密码
2.判断用户名是否匹配 
if :
	3.定义输入密码次数,默认是0
	while:
	 	4.验证密码
		if:首先判断密码长度,如果小于6位,打印密码长度不够,重新输入
		if:再判断密码是否正确,
		else:
			密码不匹配,重新输入,剩余输入次数
	else:
		输入次数超过三次,账户锁定

else:

代码中涉及的知识
1.字符串格式化输入
print ‘%s‘%(变量)
2.raw_input()函数获取用户输入
3.strip()函数,消除空格
4.len()判断字符串长度
‘‘‘
usr_name = ‘liuyang‘
usr_pwd = ‘123456‘

user_name = raw_input(‘Please enter your user name:‘).strip()
# 判断用户是否存在,存在,则继续if中语句
if user_name == usr_name:
	count = 1
	# 判断输入次数,3次机会,输入错误超过3次,退出程序
	while count <=3:
		user_pwd = raw_input(‘Please enter your user passwd: ‘).strip()
		# 判断密码长度,如果小于6,提示密码大于6位,重新输入,还有两次机会
		if len(user_pwd)<6:
			print ‘\033[1;31;40mPassword must be more than six,you have %s times,please input again!\033[0m‘%(3-count)
		# 判断密码输入正确,打印欢迎
		if user_pwd == usr_pwd:
			print ‘\033[1;32;40mLogin sucessfully! \nHey %s,Welcome!\033[0m‘%(user_name)
			break
		# 判断密码输入错误,并且输入次数不超过3次,打印密码输入错误,剩余输入次数
		else:
			print ‘\033[1;31;40mWrong password,you have %s times!\033[0m‘%(3-count)
		count += 1
	# 判断输入次数超过3次,打印密码连续输入错误三次,账户锁定
	else:
		print ‘\033[1;31;40mUser name or password wrong input more than three times, the account will be locked!!!\033[0m‘
# 判断用户名不存在,打印用户不存在
else:
	print ‘Sorry,user %s not exists,please confirm!‘%(user_name)

#引申:

exit():是Python系统函数 import sys #导入系统函数

break 与exit() exit是直接退出python脚本,break是退出当前循环

异常检查处理

try:

1/0 #执行语句,并返回执行结果

except Exception,e:

print "语法错误"

时间: 2024-11-10 00:10:50

Day1的相关文章

学习Python的day1

自己以前从来没有写博客的想法,但是学Python,里面的老师也说了,写博客可以加深自己的记忆,也能回顾内容.还能给别人参考.挺值的.2017-09-16 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Py

雅礼集训——day1、day2

day1: 嗯上午考试拿了100分.第一题40,第二题60.看完题的时候我就觉得第二题的部分分是最好得到的,因为数据范围只有300,而且一眼看上去就是网络流的二分图多重匹配模型?然后就建了个网络流写了些,期望得分是70分,但是第1组数据有点劲,被卡掉了,就拿了60分.正解是map+set的贪心...并不会STL 写完T2去看T1,先用DFS乱搞了一下,结果样例都没过去,我手推了一下样例,得到了一个公式,就是从一个点出发需要加上的边数=这个点通过DFS能够遍历到的点的个数-与这个点直接相连的点的个

Linux学习日志day1——无人值守系统安装DHCP+TFTP+PXE+Kickstar

Linux学习日志day1--无人值守批量系统远程网络安装(DHCP+TFTP+PXE+Kickstar)                                         --作者:江信瀚 服务器环境介绍: 主机名:workstation.example.com 关闭SElinux以及防火墙 虚拟机:VMware(关闭了VMware的DHCP服务) 网卡配置: 静态IP获取! IPV6全部都删除,因为根本用不到 子网IP可以在VMware中设置 8.8.8.8是谷歌的DNS服务器

#6030. 【雅礼集训 2017 Day1】矩阵

#6030. 「雅礼集训 2017 Day1」矩阵 题目描述 有一个 n×n  的矩阵,每个位置 (i,j) 如果是 . 表示为白色,如果是 # 表示为黑色. 初始时,每个位置可以是黑色或白色的,(i,j)  位置的值会作为 ai,j 给你. 现在有一种操作,选择两个整数 i,j∈[1,n],记 (i,1),(i,2),…,(i,n) (i, 1), (i, 2)的颜色为 C1,C2,…Cn ??,将 (1,j),(2,j),…,(n,j)  的颜色赋为 C1,C2,…,Cn ??. 你的任务是

ZJOI2017 day1滚粗记

这几天去温州作为外省选手参加了$ZJOI day1$.打了几天的酱油,考试也滚粗了.. $day -2$ 中午从学校出发,坐飞机去温州.到了温州以后吃完晚饭就回宾馆.把一直想做的糖果公园做完了以后就堕落了一晚..玩了好久.. $day -1$ 上午听周子鑫大佬讲搜索.前几题还挺简单的,开始讲$dancing-links$以后就有点懵逼了.原理大概还是听懂了,但是完全不会实现..然后讲了很多玄学搜索题,感觉后面讲的那几题都有点懵懵懂懂,讲得好快难以接受.. 下午开始就正式进入懵逼阶段了.下午讲课一

day1作业--登录入口

作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.txt(可以存在,可以不存在) 白名单文件whitelist.txt存在,内容如下: zhangsan,1234 wang,1234 ding,1234 2.输入密码的时候不显示 代码: 1 #coding=utf-8 2 import os 3 import getpass 4 5 BlackLis

day1 login

使用流程: 1.程序启动后,显示欢迎信息,提示用户输入用户名: 2.判断用户是否存在,不存在则提示重新输入,或者关闭程序:客户存在则提示客户输入密码: 3.判断密码是否正确,如果不正确则提示用户重新输入,输入第三次依然错误,则锁定该账户: 4.密码输入正确时,后台进程判断用户是否被禁用,“禁用”时提示用户联系管理员:没有禁用则显示登录成功欢迎信息. 系统设计: (循环登录次数增加,来禁用账户,试了 n 次,还在研究:初步实现用两个文件来实现用户验证) 1.本程序运行需要依赖两个基础文件:user

遥望布达拉——DAY1 成都-雅安

由于昨晚讨论路线加扯淡睡得比较晚,早上7点才起床,虽然以后几乎每天都这个点起,但相对于今天150km的路程,又是第一天骑需要适应节奏,注定是个悲剧.不过,不用担心,这仅仅是川藏线酸甜苦辣的开始. 先来介绍一下另外4个队友吧 左一老陈:哈尔滨人,工作三年,成熟稳重,身体综合素质较强,请了一个月假出来,骑完就要去非洲出差了,要被晒成黑球了,哈哈 右三老彭:湖北人,武汉理工大学材料学研一,骑行经验较丰富,竟然背着导师偷偷跑出来,胆儿真肥.不过他到理塘就转去稻城亚丁了,和我们只是顺路10天 右二小鹏:福

SHTSC2015 Day1

作为一名蒟蒻,今天本来就是抱着打酱油的心情去的,当然结果我依旧是打了一次酱油. 不过这个酱油打得还是要有收获的,虽然在成绩上远远落后于众位大神,但是作为一名新手还是能够从比赛中收获到不少考试经验,而这对往后的各种比赛都是很有帮助的.尤其是像信息学这种普及范围不是特别广的科目,平日里官方举办的线下赛很少,所以多多参加像省选这样的比赛就很重要了.我也感受到了上海主办方老师对于省选赛设立五次考试的良苦用心,而且费用竟然只要100元简直良心啊. 先说一下刚到考场发生的事情,简直是运气不好,我的机子鼠标没

省常中模拟 Test3 Day1

tile 贪心 题意:给出一个矩形,用不同字母代表的正方形填充,要求相邻的方块字母不能相同,求字典序(将所有行拼接起来)最小的方案. 初步解法:一开始没怎么想,以为策略是每次填充一个尽量大的正方形.但是很快就能找到反例.比如当一个 4*2 的矩形左半部分填充了一个 2*2 的 A 后,不应该在右半部分填充 2*2 的 B,而是应该先填一个 1*1 的 B,然后继续用 A 填充,如图. 上面这个例子中,第二种方案虽然用到了 C,但是如果按照题意将每一行拼接起来之后第二种方案的字典序显然更小. 正解