数据类型:
日常生活中,我们常用的数据是有很多类型的,比如数字和字符串,数字的功能是计数和运算,字符串即文字是记录和交换信息,区别很大。
但是计算机使用二进制记录所有信息,无法区分不同数据的区别,所以需要人为的指定。
比如c 和 java等语言,赋值变量时必须明确标识数据类型。但是python是更加高级的语言,解释器会自动识别数据类型,但是有时解释器指定的数据类型不符合你的要求,可以自己进行转换。
基本数据类型分为三类:
数字,字符串,布尔
数字:
python 2.x 版本 分为三类:int整形 long长整形 float浮点数
3.x版本 只有两类 int整形 float浮点数
字符串:
带有引号的字符
'单引号' "双引号":主要是方便句子中有引号的情况。
1 msg = '我说:“这里需要单双引号的配合”'
2 s ='多行时需要' \
3 '帮助截断'
4 s1 = '使用\
5 截断'
6 print(msg)
7 print(s)
8 print(s1)
字符串单双引号
'''三引号''':方便多行字符串的情况。
字符串的+ , *
+ 加号拼接两个字符串中间没有空格 , 逗号拼接两个字符串中间有空格。
1 s1 = 'this is'
2 s2 = 'str'
3 print(s1,s2)
4 print(s1+s2)
字符串拼接
* 字符串*数字,重复几次字符串。
布尔值 :
只有两个值True(1) False (0)用于逻辑判断,计算机用于描述成立与否。
1 a = 3
2 b = 4
3 a<b --->True
4 a>b ---->False
布尔值示例
格式化输出:按需求打印出美观的有规则的字符串样式。
%s 占位符,s代表字符串,可以传入任意数据类型。d代表整数,只能传入整数。f代表浮点数只能传入浮点数。
1 name = input('name :')
2 age = input('age :')
3 job = input('job :')
4 hometown = input('Hometown :')
5
6 msg = '''
7 ---------info of %s-------
8 name : %s
9 age : %s
10 job : %s
11 hometown: %s
12 ---------end---------------
13 '''%(name,name,age,job,hometown)
14 print(msg)
格式化输出
运算符:算术运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。
算术运算:+加 -减 *乘 /除 %取余(可以用于区分奇数偶数) **幂 //除取整
比较运算:== > < >= <= != <>(不等于python3 取消)
赋值运算:= += -= *= /= %= **= //=
逻辑运算:and且 or或 not非
流程控制:
单分支 if
双分支 if else
练习:输入姓名性别年龄,判断如果是女生,且年龄小于28,打印我喜欢女生,否则,打印姐弟恋也可以,如果是男生,打印一起来搞基。
1 name = input('name : ')
2 age = int(input('age : '))
3 sex = input('sex : ')
4
5 if sex == 'female':
6 if age<28:
7 print('我喜欢女性')
8 else:print('姐弟恋也可以')
9
10 else:print('一起来搞基')
练习
多分支 if elif else
练习:猜年龄
1 age = 30
2 while 1:
3 _age = int(input('age:'))
4 if age > _age:
5 print('大了')
6 elif age <_age:
7 print('小了')
8 else:
9 print('猜对了')
10 break
循环 while:
将相同的代码执行多次,次数可以指定。
死循环:程序一直循环没有结束条件。
while else :程序循环如果中间没断,就可以执行else语句,否则不执行else.目的是检测循环内是否出现问题。
#打印0-100 不打印50 60-80打印平方
1 count = 0
2 while count < 100:
3
4 if count == 50:
5 pass
6 elif count>=60 and count<=80:
7 print(count**2)
8 else:print(count)
9 count += 1
猜数字,猜三次询问是否要继续,输入y继续,否则停止。
1 age = 25
2 count =0
3 while 1:
4 guess_age = int(input('请输入数字:'))
5 if guess_age > age:
6 print('大了')
7 elif guess_age < age:
8 print('小了')
9 else:
10 print('猜对了。。')
11 break
12 count += 1
13
14 if count % 3 == 0:
15 control = input('是否还想继续玩:是y ').upper()
16 if control != 'Y':
17 break
猜数字
作业1:
用户登录,允许输入三次账号密码,对了输出欢迎信息,超过三次不允许登录。
1 user = 'qianlei'
2 password = 'abc123'
3 count = 0
4 while 1:
5 if count < 3:
6 count += 1#先加1再判断,所以当count == 3时还没有判断,下一次循环再进行判断。
7 _user = input('输入用户名:')
8 _password = input('输入密码:')
9 if _user == 'qianlei' and _password == 'abc123':
10 print('输入正确,欢迎光临')
11 break
12 else:
13 print('输入错误')
14 continue
15
16 else:
17 print('输入错超过3次')
18 break
作业1
作业2:
可以支持多个用户登录(使用列表)
用户三次失败后退出,退出程序后再次启动还是锁定(用户锁定存到文件中。)
1 user = ['qianlei','zhangsan','lisi']
2 password = ['123','abc','qwe']
3 count = 0
4 f = open('lock.txt','r',encoding='utf-8')
5 while 1:
6 count += 1
7 if count <= 3:
8 _user = input('输入账号:')
9 _password = input('输入密码:')
10 if _user in f.read():
11 print('你的账户已经被锁定。')
12 break
13 if _user in user:
14 idx = user.index(_user)
15 if _user in user and password[idx] == _password:
16 print('输入正确,欢迎光临')
17 break
18 else:
19 print('输入错误')
20 continue
21 else:
22 with open('lock.txt','a') as f:
23 f.write(_user)
24 print('你的账户以及锁定')
25 break
作业2