1、与用户交互
1、什么是与用户交互
程序等待用户输入数据,然后程序执行完毕后为用户反馈信息

2.为什么要与用户交互
为了和计算机之间像人与人一样沟通无障碍
3、怎么用
python3 input
python2 raw_input

在python中 计算机会将用户输入的一切都转化为字符串格式


2、格式化输出
1、print("my name is %s,我的年龄是%s"%s('ouyang',21))
1、print("my name is %s,我的年龄是%d"%s('ouyang',21))
%s 可以表示任何数据类型,但是%d只能表示整型(int)

3、数据类型之数字类型(int和float)
1、int整型,记录年龄,QQ号,手机号等带有整数的类型数字或者数字集
如:age='18' num = '666'

2、 float(浮点型)记录身高,工资,等带有小数的一个数据类型
salary='3.1 inp=4.222

4、 数据类型之字符串类型(str)
作用:记录描述性质的数据,比如人的名字,性别,家庭住址。。。
定义:用单引号,双引号或三引号将一串字符囊括起来,如:name='ouyang'
name='ouyang'
print(type(ouyang))

1、强调:字符串可以进行运算
name='ouyang'
age='18'
print(name+age)
2、字符串相加是申请内存空间然后拷贝想家的字符串到新的空间中,效率不高
3、字符串可以进行乘法运算
print('ouyang'*10)

5、 列表类型:list
作用:可以记录/存在多个值,可以很方便地取出来指定位置的值,比如自己的爱好,一堆学生的名字
定义: 在[]中用逗号分隔开的多个任意类型的值
li=[1,2,'ouyang',[1,2,3,],]
print(li[2])
print(li[3][1])

使用:
hobbies="read music sleep eat play"
hobbies=["read","music","sleep","eat","play"]
print(hobbies[2])

6、字典类型dict

作用:记录多个key:value 值,优势是每一个值value都有其对应关系/映射的key,
而key对value有描述性的作用
定义:在{}内用逗号分隔的多个key:value元素,其中value可以是任意类型,但key通常是字符串类型
info={'name':'ouyang','sex':"man",'age':18}
print(type(info))
print(info['age'])

7、布尔类型 (bool)
作用:用来作为判断的条件去用
tag = True
tes = False
print(type(tag),type(tes))

通过判断去得到布尔值
print(age > 20)
print(age >= 20)

age=18
==比较的是值
print(age == 18)
is:比较的是id是否相等
强调:id相等值一定相等,id不等但是值仍然可以相等


tag=True
print(id(tag))

res=3 > 1
print(id(res))

res2=1 < 10
print(id(res))
  1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3 
  4 # while 循环练习题
  5 #1. 使用while循环输出1 2 3 4 5 6     8 9 10
  6 """
  7 i = 0
  8 while i < 10:
  9     i +=1
 10     if i == 7:
 11         print(" ")
 12         i+=1
 13     print(i)
 14     """
 15 #2. 求1-100的所有数的和
 16 """
 17 i = 0
 18 sum = 0
 19 while i<100:
 20     i+=1
 21     sum = sum +i
 22 print(sum)
 23 """
 24 #3. 输出 1-100 内的所有奇数
 25 """
 26 i = 0
 27 while i < 100:
 28     i +=1
 29     if i %2 == 1:
 30         print(i)
 31 """
 32 #4. 输出 1-100 内的所有偶数
 33 """
 34 i = 0
 35 while i < 100:
 36     i +=1
 37     if i %2 == 0:
 38         print(i)
 39 """
 40 #5. 求1-2+3-4+5 ... 99的所有数的和
 41 """
 42 i = 0
 43 sum = 0
 44 while i<100:
 45     i+=1
 46     if i%2 ==0:
 47         sum = sum-i
 48     else:
 49         sum = sum +i
 50 
 51 print(sum)
 52      """
 53 #6. 用户登陆(三次机会重试)
 54 """
 55 
 56 i = 0
 57 while i<3:
 58     i +=1
 59     print('这是第%s次'%i)
 60     name = input("请输入用户名:")
 61     pwd = input("请输入密码:")
 62 """
 63 #7:猜年龄游戏
 64 # 要求:
 65 #     允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
 66 """
 67 age = '21'
 68 for i in range(1,4):
 69 
 70     print("这是第%s次"%i)
 71     inp = input("请输入数字:")
 72     if inp > age:
 73         print('大了大了')
 74     elif inp < age:
 75         print("小了小了")
 76 
 77     else:
 78         print("恭喜你,答对了")
 79 
 80 """
 81 
 82 
 83 
 84 #8:猜年龄游戏升级版
 85 # 要求:
 86 #     允许用户最多尝试3次
 87 #     每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
 88 #     如何猜对了,就直接退出
 89 """
 90 age = '21'
 91 i = 0
 92 while True:
 93     if i == 3:
 94         wq = input("要不要退出(Y/y)")
 95         if wq == 'Y' or wq == 'y':
 96             print('很遗憾,程序退出')
 97             break
 98         else:
 99             i = 0
100     inp = input("请输入数字:")
101     if inp > age:
102         print('大了大了')
103     elif inp < age:
104         print("小了小了")
105 
106     else:
107         print("恭喜你,答对了")
108         break
109     i  +=1
110 """
111 
112 # 九九乘法表
113 """
114 for i in range(1,10):
115     for j in range(1,i+1):
116         print('%s*%s=%s'%(i,j,i*j),end=' ')
117     print()
118 """
119 
120 # 打印金字塔
121 """
122 层数 num = 5
123 space = num - cen 
124 星号 stat = cen*2 -1
125 """
126 """
127 num = 5
128 for cen in range(1,num+1):
129     for j in range(num - cen):
130         print(' ',end='')
131     for k in range(cen*2-1):
132         print('*',end='')
133     print()
134 """
135 cen = 5
136 for i in range(1,cen+1):
137     for j in range(cen-i):
138         print(" ",end='')
139     for k in range(i*2-1):
140         print('*',end='')
141     print()
142 
143     十七,作业
144     http://www.cnblogs.com/linhaifeng/articles/7133167.html
145     
146 1 练习题
147 
148 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
149 执行 Python 脚本的两种方式是什么
150 Pyhton 单行注释和多行注释分别用什么?
151 布尔值分别有什么?
152 声明变量注意事项有那些?
153 如何查看变量在内存中的地址?
154 写代码
155 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
156 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
157 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
158 写代码
159 a. 使用while循环实现输出2-3+4-5+6...+100 的和
160 b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 使用 while 循环实现输出 1-100 内的所有奇数
161 
162 e. 使用 while 循环实现输出 1-100 内的所有偶数
163 
164 现有如下两个变量,请简述 n1 和 n2 是什么关系?
165 
166       n1 = 123456
167       n2 = n1
168       
169       
170       
171 答***********答*****************答**************答********172 
173 1、编译型与解释型语言:
174     区别:编译型语言的执行效率比解释型语言高,但是开发效率比解释型语言低
175     编译型:C语言,c++,C#,java,
176     解释型:Python/JavaScript / Perl /Shell
177     
178 2、执行Python脚本的两种方式是什么?
179     通过终端进行交互
180     通过python脚本解释器进行操作
181 182         1、./run.py.shell直接调用python脚本
183 
184         2、python run.py 调用python 解释器来调用python脚本
185 186     
187 
188 3、Python单行注释和多行注释分别用 # 和""" 注释内容   """
189 
190 4、布尔值分别有 None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
191 
192 5、声明变量注意事项有哪些 
193         1、变量名只能是数字,字母,下划线的任意组合(区分大小写)
194         2、变量的开头不能是数字
195         3、不能将变量命名为Python的关键字
196         
197 6、如何查看变量在内存中的地址:
198     name = ouyang
199     id(name)
200     
201 7、写代码
202     1、实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,
203     显示登陆成功,否则登陆失败!
204         
205         naem = input("请输入用户名:")
206         pwd = input("请输入密码:")
207         if name == seven and pwd == '123':
208             print("登陆成功")
209         else:
210             print("登陆失败")
211             
212     2、实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,
213     显示登陆成功,否则登陆失败,失败时允许重复输入三次
214         
215         name = input("请输入用户名:")
216         pwd = input("请输入密码:")
217         if name == "seven" and pwd == '123':
218             print("登陆成功")
219         else:
220             print("登陆失败")
221             i = 0
222             while i < 3:
223                 i+=1
224                 print("This is number %s"%i)
225 
226                 name = input("请输入用户名:")
227                 pwd = input("请输入密码:")
228                 if name == "seven" and pwd == '123':
229                     print("登陆成功")
230                     break
231                 else:
232                     print("登陆失败")
233             
234     3、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123235     ,显示登陆成功,否则登陆失败,失败时允许重复输入三次
236             name = input("请输入用户名:")
237             pwd = input("请输入密码:")
238             if name == "seven"or name == 'alex' and pwd == '123':
239                 print("登陆成功")
240             else:
241                 print("登陆失败")
242                 i = 0
243                 while i < 3:
244                     i+=1
245                     print("This is number %s"%i)
246 
247                     name = input("请输入用户名:")
248                     pwd = input("请输入密码:")
249                     if name == "seven" and pwd == '123':
250                         print("登陆成功")
251                         break
252                     else:
253                         print("登陆失败")
254                     
255                     
256         
257         
258 8、a. 使用while循环实现输出2-3+4-5+6...+100 的和
259         i = 1
260         sum = 0
261         while i < 100:
262             i +=1
263             if i%2 == 0:
264                 sum =sum +i
265             else:
266                 sum -= i
267         print(sum)
268     b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12
269     
270             i = 0
271             while i <12:
272                 i +=1
273                 if i == 6 or i == 10:
274                     print(" ")
275                     continue
276                 else:
277                     print(i)
278     使用 while 循环实现输出 1-100 内的所有奇数
279             i = 0
280             while i<100:
281                 i+=1
282                 if i%2 == 1:
283                     print(i)
284                     
285     e. 使用 while 循环实现输出 1-100 内的所有偶数
286             i = 0
287             while i<100:
288                 
289                 if i%2 == 0:
290                     print(i)
291                 i+=1    
292 
293 9、            现有如下两个变量,请简述 n1 和 n2 是什么关系?
294 
295       n1 = 123456
296       n2 = n1
297       
298       n1和 n2 有相同的id地址 那么type和value也必然相同
299       
300       
301           
302 
303             
304         
305         
306 答***********答*****************答**************答********307     
308     
309 2 作业:编写登陆接口
310 
311 基础需求:
312     让用户输入用户名密码
313     认证成功后显示欢迎信息
314     输错三次后退出程序
315     
316 dic={
317     'egon1':{'password':'123','count':0},
318     'egon2':{'password':'123','count':0},
319     'egon3':{'password':'123','count':0},
320 
321 }
322 while True:
323     name = input("请输入用户名")
324     if not name in dic:
325         print("用户名不存在")
326         continue
327     if dic[name]['count'] > 2:
328         print("操作次数过多,退线")
329         continue
330     pwd = input("请输入密码")
331     if dic[name]['password'] == pwd:
332         print("登陆成功")
333         break
334 
335     else:
336         print("用户或密码名错误")
337         dic[name]['count'] +=1
338 
339     
340     
341 升级需求:
342 
343 可以支持多个用户登录 (提示,通过列表存多个账户信息)
344 用户3次认证失败后,退出程序,再次启动程序尝试登录时,
345 还是锁定状态(提示:需把用户锁定的状态存到文件里)
346     
347     dic={
348     'egon1':{'password':'123','count':0},
349     'egon2':{'password':'123','count':0},
350     'egon3':{'password':'123','count':0},
351 
352 }
353 
354 
355 tage = 0
356 while True:
357     name = input("user")
358     if not name in dic:
359         print("用户不存在")
360         with open('t1','r+',encoding= 'utf-8') as f:
361             line = f.read().split('|')
362             if name in line:
363                 print("已锁定")
364                 break
365     if dic[name]['count'] >2:
366         print("已退线")
367         continue
368     pwd = input("password")
369     if pwd == dic[name]['password']:
370         print("登陆成功")
371         break
372     else:
373         print("密码名错误")
374         dic[name]['count'] +=1
375 
376 
377     
378     
379     
作业
九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print("%s*%s=%s"%(i,j,i*j),end=' ')
    print()



import random
a = random.randrange(1,7)
print(a)


金字塔

   *
  ***  2n-1
 *****
*******
*********

zongceng=5   cen  个数=cen*2-1   空格数=zongcen-cen
zongcen = 5
for i in range(1,zongcen+1):
    for j in range(zongcen-i):
        print(' ',end='')
    for k in range(i*2-1):
        print('*',end='')
    print('    ')


实现打印商品详细信息,用户输入商品名和购买个数,则将商品名,价格,购买个数加入购物列表,如果输入为空或其他非法输入
则要求用户重新输入 



msg_dic={
'apple':10,
'tesla':100000,
'mac':3000,
'lenovo':30000,
'chicken':10,
}
good = []

for key,vlaue in msg_dic.items():
print(key,vlaue)
tag=True
while tag:
name=input("请输入商品名")
if name == ' 'or not name in msg_dic:
print("请重新输入")
continue
num=input("请输入个数")
if num ==' ' or not num.isdigit():
print("请重新输入")
continue
good.append((name,msg_dic[name],num))
while True:
wen=input("是否再来一次(yes/no)不区分大小写")
wen_l=wen.lower()
if wen_l=='yes':
break
elif wen_l=='no':
tag=False
break
else:
print("你输入不正确,请重新输入")
print(good)





 

posted on 2018-07-20 14:14  Andy_ouyang  阅读(833)  评论(0编辑  收藏  举报