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 且 密码为 123 时 235 ,显示登陆成功,否则登陆失败,失败时允许重复输入三次 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)