1、练习
1、输入一个整数n,打印 1+2+3+4+...+n的和
思路:1、定义1个变量来控制循环条件
2、定义1个变量来存储所有数的和
# n = int(input("请输入一个整数:")) # 5
# s = 0 # 存储所有数的和
# i = 1 # 控制循环条件
# while i <= n:
# s = s + i
# i = i + 1
2、写程序求 1/1 + 1/3 + 1/5 + ... + 1/99
# s = 0
# i = 1
# while i <= 99:
# s += 1/i
# i += 2
# print("1/1+1/3+...+1/99的和为%s" % s)
3、用while循环实现随机生成n为密码(密码为数字、字母、下划线)
提示:1、可以利用字符串相加
2、定义空字符串方式:pwd = ""
补充:如果说用户输入的不是数字,则提示输入不合法
# import random
# n = input("请输入密码位数:")
# all_chars = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_"
# i = 1 # 控制循环次数变量
# pwd = "" # 定义空字符串变量,
# # 以便循环时实现字符串相加
# if n.isdigit(): # 确定是字符串类型的数字再执行
# n = int(n) # 将字符串类型数字转换为整型
# while i <= n:
# char = random.choice(all_chars)
# pwd = pwd + char
# i += 1
# print("生成的%d位密码为:%s" % (n,pwd))
# else:
# print("输入不合法")
2、break语句
1、作用
用于循环语句中,用来终止当前循环语句的执行
2、说明
1、break语句一旦执行,整个while循环结束
2、break语句通常和if语句组合使用
3、练习
1、改写猜数字游戏程序,要求如下:
1、直到猜对,继续玩游戏
2、按q退出游戏
# import random
# computer = random.randint(1,100)
# while True:
# you = input("请猜(按q退出游戏):")
# if you == "q":
# print("游戏退出")
# break
# if you.isdigit():
# you = int(you)
# if you == computer:
# print("恭喜,猜对了!")
# break
# elif you < computer:
# print("很遗憾,猜小了!")
# else:
# print("很遗憾,猜大了!")
# else:
# print("输入有误")
5、思考
1、修改石头剪刀布游戏,输入q退出游戏
2、修改石头剪刀布游戏,能否让其实现三局两胜制
c_win = 0
y_win = 0
p_win = 0
import random
all_list = ["石头","剪刀","布"]
prompt = """(0)石头
(1)剪刀
(2)布
(q)退出游戏
请你出拳(0/1/2/q):"""
c_win = 0
y_win = 0
p_win = 0
while True:
you = input(prompt)
if you in '012q':
if you == "q":
print("游戏退出")
break
you = int(you)
computer = random.choice(all_list)
win_list = [["石头","剪刀"],["剪刀","布"],\
["布","石头"]]
if [computer,all_list[you]] in win_list:
print("电脑出:%s 你出:%s 你输了" %
(computer,all_list[you]))
c_win += 1
if c_win == 2:
break
elif computer == all_list[you]:
print("电脑出:%s 你出:%s 平局" %
(computer,all_list[you]))
p_win += 1
else:
print("电脑出:%s 你出:%s 你赢了" %
(computer,all_list[you]))
y_win += 1
if y_win == 2:
break
if c_win + p_win + y_win == 3:
break
else:
print("输入不合法")
if c_win > y_win:
print("电脑胜!比分为:%d:%d" % (c_win,y_win))
elif c_win < y_win:
print("你胜!比分为:%d:%d" % (c_win,y_win))
else:
print("平局!")
3、for循环
1、作用
for语句可以用来遍历序列或可迭代对象每一个元素
2、可迭代对象包括
字符串(string)
列表(list)
3、语法
for 变量名 in 可迭代对象:
python语句1...
else:
python语句2
注意:
1、else子句可以省略
2、语句1执行的次数与可迭代对象元素的个数有关
4、示例
1、
s = "Python"
for i in s:
print("Python这个字符串中的字母有:%s" % i)
2、
L = ["monkey","tiger","pig","rabbit","dog"]
for m in L:
print("动物有:%s" % m)
4、range()函数
1、用法
range(起始值,终止值,步长)
终止值:不包括
2、示例
range(3) # [0,1,2]
range(5) # [0,1,2,3,4]
range(1,5) # [1,2,3,4]
range(1,5,2) # [1,3]
range(5,0,-1) # [5,4,3,2,1]
3、示例
1、输入一个整数n,打印从1到n的所有整数
5
1 2 3 4 5
# n = input("请输入一个整数:")
# if n.isdigit():
# n = int(n)
# for i in range(1,n+1):
# print(i,end=" ")
# print()
# else:
# print("输入不合法")
2、输入一个整数n,打印从1到n的所有奇数
# n = input("请输入一个整数:")
# if n.isdigit():
# n = int(n)
# for i in range(1,n+1):
# if i % 2 == 1:
# print(i,end=" ")
# print()
# else:
# print("输入不合法")
3、输入一个整数n,打印从1到n的所有偶数
# n = input("请输入一个整数:")
# if n.isdigit():
# n = int(n)
# for i in range(1,n+1):
# if i % 2 == 0:
# print(i,end=" ")
# print()
# else:
# print("输入不合法")
4、练习
1、计算1到100的和(用for循环完成)
# sumn = 0
# for i in range(1,101):
# sumn = sumn + i
# # sumn = 0 + 1 #sumn=1
# # sumn = 1 + 2 #sumn=3
# print("1到100的和为:%d" % sumn)
2、输入一个正整数n,计算1到n的所有奇数和
# n = input("请输入一个整数:")
# sumn = 0
# if n.isdigit():
# n = int(n)
# for m in range(1,n+1,2):
# sumn += m
# else:
# print("输入不合法")
# print("1到%d的所有奇数和为:%d" % (n,sumn))
3、利用for循环实现随机生成n位密码
# import random
# n = input("请输入密码位数:")
# all_chars = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_"
# pwd = ""
# if n.isdigit():
# n = int(n)
# for m in range(n):
# char = random.choice(all_chars)
# pwd += char
# print("随机生成的%d位密码为:%s" % (n,pwd))
# else:
# print("输入不合法")
作业:
1、输入三个整数x,y,z,请把这三个数在列表中由小到大输出
比如:
First: 5
Second:8
Third: 3
[3,5,8]
提示:append() 、sort()
L = []
i = 1
e = 0
while i <= 3:
x = int(input("请输入第一个整数:"))
L.append(x)
i += 1
y = int(input("请输入第二个整数:"))
L.append(y)
i += 1
z = int(input("请输入第三个整数:"))
L.append(z)
i += 1
L.sort()
while e <= 2:
print(L[e])
e += 1
2、写一个程序分别输入三行字符串,要求将这些字符串进行右对齐显示
First: Double Kill
Second:Jujishou
Third:Zhishouzhetian
打印如下:
Double Kill
Jujishou
Zhishouzhetian
提示:max() len() 字符串的运算