10 月 132020
 
import random #引入random库

#在指定起始值范围内随机取值
point1 = random.randrange(1,7)
point2 = random.randrange(1,7)
point3 = random.randrange(1,7)

#
def points():
    return str(point1), str(point2), str(point3) #返回三个变量值

#累加计算三个随机数并判断大小
def calc():
    values = point1 + point2 + point3 #累加计算
    if 11 <= values <= 18:
        return 'Big'
    elif 3 <= values <= 10:
        return 'Small'

#执行
print('>>> START <<<')
choose = input('Input Big or Small: ') #用户输入大小赋值变量
abc = points() #调用函数返回三个随机数并赋值变量
print('The points are {}'.format(abc)) #使用格式化字符串打印变量值

#定义状态列表,并判断状态
status = ['You are win!', 'You are lose!']
if choose == calc(): #判断,用户输入与函数计算返回值比较运算,一致返回成功
    print(status[-2])
else: #反之,不一致返回失败
    print(status[-1])
PS D:\Python> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe d:/Python/hello.py
>>> START <<<
Input Big or Small: Big
The points are ('5', '6', '3')
You are win!
PS D:\Python>

10 月 132020
 
def text_creation():
    path = 'C:/Users/harveymei/Desktop/'
    for name in range(1,11):
        with open(path + str(name) + '.txt', 'w') as text: #文件操作
            text.write(str(name)) #写入内容
            text.close()
            print('Done')
text_creation()
def invest(amount, rate, time):
    print('principal amount: {}'.format(amount)) #字符串格式化填充
    for t in range(1, time + 1):
        amount = amount * (1 + rate)
        print('year {}: ${}'.format(t, amount))
invest(100, .05, 8)
invest(2000, .025, 5)
def even_print():
    for i in range(1,101):
        if i % 2 == 0:
            print(i)
even_print()
10 月 122020
 
#打印1-100范围内偶数

#判断是否偶数
number = range(1,101) #定义取值范围1-100赋值给变量

for i in number: #定义for循环,元素赋值变量
    if (i%2) == 0: #判断,比较运算,取模为0时为True
        print(i)

print(bool((3%2 == 0))) #False
print(bool((4%2 == 0))) #True

#改造,将偶数写入列表,并打印列表中的元素

#打印1-100范围内偶数

#判断是否偶数
number = range(1,101) #定义取值范围1-100赋值给变量
list = [] #空列表

for i in number: #定义for循环,元素赋值变量
    if (i%2) == 0: #判断,比较运算,取模为0时为True
        #print(i)
        list.append(i) #改造,将偶数写入列表,并打印列表中的元素

print(bool((3%2 == 0))) #False
print(bool((4%2 == 0))) #True
print(list) #打印列表
PS D:\Python> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe d:/Python/hello.py
False
True
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 
52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]
PS D:\Python>
10 月 122020
 
#复利计算,利率5%,输入金额,显示1年-8年的资金总额
#invest(amount, rate, time)

amount = input('principal amount: ') #用户输入初始金额赋值变量
rate = float(1 / 20) #固定利率
time = range(1, 9) #显示1-8年

#定义计算函数
def invest(): #变量作为固定参数,首次来自用户输入    
    total_amount = float(amount) + float(amount) * rate #计算公式
    return total_amount

#循环调用函数并打印结果
for i in time:
    #amount = invest(amount) # 位置很重要,应当在第一次调用函数后再赋值
    print('year ' + str(i) + ': ' + str(invest()))
    amount = invest() #打印完第1年总额后将该总额再赋值给amount变量
PS D:\Python> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe d:/Python/hello.py
principal amount: 100
year 1: 105.0
year 2: 110.25
year 3: 115.7625
year 4: 121.550625
year 5: 127.62815624999999
year 6: 134.00956406249998
year 7: 140.71004226562496
year 8: 147.7455443789062
PS D:\Python> 

#改造,用户输入函数两个参数,打印1-8年总额

#改造,用户输入函数两个参数,打印1-8年总额

#复利计算,利率5%,输入金额,显示1年-8年的资金总额
#invest(amount, rate, time)

amount = input('principal amount: ') #用户输入初始金额赋值变量
rate = input('input rate %: ') #用户输入利率
rate = float(int(rate) / 100) #固定利率
time = range(1, 9) #显示1-8年

#定义计算函数
def invest(): #变量作为固定参数,首次来自用户输入
    total_amount = float(amount) + float(amount) * rate #计算公式
    return total_amount

#循环调用函数并打印结果
for i in time:
    #amount = invest(amount) # 位置很重要,应当在第一次调用函数后再赋值
    print('year ' + str(i) + ': ' + str(invest()))
    amount = invest() #打印完第1年总额后将该总额再赋值给amount变量
PS D:\Python> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe d:/Python/hello.py
principal amount: 200
input rate %: 6
year 1: 212.0
year 2: 224.72
year 3: 238.2032
year 4: 252.495392
year 5: 267.64511552
year 6: 283.7038224512
year 7: 300.726051798272
year 8: 318.76961490616833
PS D:\Python>
10 月 122020
 
#定义一个创建文件的函数
def create_file():
    path = 'C:/Users/harveymei/Desktop/' #最后一个斜线必须有
    fullname = path + filename + '.txt'
    file = open(fullname, 'w')
    file.close()

#使用for循环调用创建文件函数
for name in range(1,11): #使用range()函数提供1-10序列数值
    filename = str(name) #使用str()函数将整数转换为字符串赋值给变量
    create_file() #循环调用函数,创建10个文件
PS D:\Python> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe d:/Python/hello.py
PS D:\Python> ls C:\Users\harveymei\Desktop\


    目录: C:\Users\harveymei\Desktop


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2020/10/12     11:51              0 1.txt
-a----        2020/10/12     11:51              0 10.txt
-a----        2020/10/12     11:51              0 2.txt
-a----        2020/10/12     11:51              0 3.txt
-a----        2020/10/12     11:51              0 4.txt
-a----        2020/10/12     11:51              0 5.txt
-a----        2020/10/12     11:51              0 6.txt
-a----        2020/10/12     11:51              0 7.txt
-a----        2020/10/12     11:51              0 8.txt
-a----        2020/10/12     11:51              0 9.txt
-a----         2020/10/9      9:00           2136 Docker Desktop.lnk
-a----         2020/4/14      8:55           2371 GitHub Desktop.lnk
-a----         2020/8/28     15:20           2312 Kindle.lnk
-a----         2020/8/21     17:59           2255 MockingBot.lnk
-a----        2020/10/10      9:40           2217 Slack.lnk


PS D:\Python>
10 月 112020
 
+---------------+-------------+--------------+--------------+----------------+
| abs()         | delattr()   | hash()       | memoryview() | set()          |
+---------------+-------------+--------------+--------------+----------------+
| all()         | dict()      | help()       | min()        | setattr()      |
+---------------+-------------+--------------+--------------+----------------+
| any()         | dir()       | hex()        | next()       | slice()        |
+---------------+-------------+--------------+--------------+----------------+
| ascii()       | divmod()    | id()         | object()     | sorted()       |
+---------------+-------------+--------------+--------------+----------------+
| bin()         | enumerate() | input()      | oct()        | staticmethod() |
+---------------+-------------+--------------+--------------+----------------+
| bool()        | eval()      | int()        | open()       | str()          |
+---------------+-------------+--------------+--------------+----------------+
| breakpoint()  | exec()      | isinstance() | ord()        | sum()          |
+---------------+-------------+--------------+--------------+----------------+
| bytearray()   | filter()    | issubclass() | pow()        | super()        |
+---------------+-------------+--------------+--------------+----------------+
| bytes()       | float()     | iter()       | print()      | tuple()        |
+---------------+-------------+--------------+--------------+----------------+
| callable()    | format()    | len()        | property()   | type()         |
+---------------+-------------+--------------+--------------+----------------+
| chr()         | frozenset() | list()       | range()      | vars()         |
+---------------+-------------+--------------+--------------+----------------+
| classmethod() | getattr()   | locals()     | repr()       | zip()          |
+---------------+-------------+--------------+--------------+----------------+
| compile()     | globals()   | map()        | reversed()   | __import__()   |
+---------------+-------------+--------------+--------------+----------------+
| complex()     | hasattr()   | max()        | round()      |                |
+---------------+-------------+--------------+--------------+----------------+
10 月 102020
 
password_list = ['*#*#', '12345']
def account_login():
    tries = 3 #赋值变量,初始密码重试次数为3
    while tries > 0: #while循环
        password = input('Password:') #用户输入赋值变量
        #密码为12345,则password_correct = True
        password_correct = password == password_list[-1] 
        #密码为*#*#,则password_reset = True
        password_reset = password == password_list[0]

        if password_correct: #密码正确,打印成功提示,继续while循环
            print('Login success!')
        elif password_reset: #重设密码正确,提示输入新密码
            new_password = input('Enter a new password:')
            password_list.append(new_password) #新密码写入列表
            print('Password has changed successfully!')
            account_login() #重新调用函数登录
        else: #反之,提示错误
            print('Wrong password or invalid input!')
            tries = tries - 1 #同时对重试次数减1,并重新赋值给tries变量
            print(tries, 'times left') #打印提示剩余可重试次数
    else: #当while循环为False时,即tries不大于0时,打印提示账户锁定
        print('Your account has been suspended')
        exit() #break只可以用在while和for循环中,在超过重试次数后退出

#调用函数
account_login()
PS C:\Users\harveymei> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe c:/Users/harveymei/hello.py
Password:12345
Login success!
Password:*#*#
Enter a new password:54321
Password has changed successfully!
Password:123
Wrong password or invalid input!
2 times left
Password:123
Wrong password or invalid input!
1 times left
Password:123
Wrong password or invalid input!
0 times left
Your account has been suspended
PS C:\Users\harveymei>
10 月 102020
 
#Python中的两种循环:for循环和while循环
#for循环在可迭代的序列被穷尽时停止
#while循环在条件不成立时停止,即只要……条件成立,就一直做……
while 1 < 3:
    print('1 is smaller than 3')
#永远为True的循环,称之为死循环,Ctrl+C强制停止运行
#赋值变量,计数目的,初始值为0
count = 0
#while循环
while True:
    print('Repeat this line!')
    count = count + 1 #每打印一行,对count加1并重新赋值给count
    if count == 5: #判断count当前是否为5,是则终止while循环
        break #关键词
PS C:\Users\harveymei> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe c:/Users/harveymei/hello.py
Repeat this line!
Repeat this line!
Repeat this line!
Repeat this line!
Repeat this line!
PS C:\Users\harveymei>
10 月 102020
 
#嵌套循环
#依次将1-9赋值给变量i
for i in range(1,10):
    for j in range(1,10): #依次将1-9赋值给变量j
        #使用format()字符串格式化函数填充字符串
        print('{} X {} = {}'.format(i, j, i*j))
PS C:\Users\harveymei> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe c:/Users/harveymei/hello.py
1 X 1 = 1
1 X 2 = 2
1 X 3 = 3
1 X 4 = 4
1 X 5 = 5
1 X 6 = 6
1 X 7 = 7
1 X 8 = 8
1 X 9 = 9
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27
4 X 1 = 4
4 X 2 = 8
4 X 3 = 12
4 X 4 = 16
4 X 5 = 20
4 X 6 = 24
4 X 7 = 28
4 X 8 = 32
4 X 9 = 36
5 X 1 = 5
5 X 2 = 10
5 X 3 = 15
5 X 4 = 20
5 X 5 = 25
5 X 6 = 30
5 X 7 = 35
5 X 8 = 40
5 X 9 = 45
6 X 1 = 6
6 X 2 = 12
6 X 3 = 18
6 X 4 = 24
6 X 5 = 30
6 X 6 = 36
6 X 7 = 42
6 X 8 = 48
6 X 9 = 54
7 X 1 = 7
7 X 2 = 14
7 X 3 = 21
7 X 4 = 28
7 X 5 = 35
7 X 6 = 42
7 X 7 = 49
7 X 8 = 56
7 X 9 = 63
8 X 1 = 8
8 X 2 = 16
8 X 3 = 24
8 X 4 = 32
8 X 5 = 40
8 X 6 = 48
8 X 7 = 56
8 X 8 = 64
8 X 9 = 72
9 X 1 = 9
9 X 2 = 18
9 X 3 = 27
9 X 4 = 36
9 X 5 = 45
9 X 6 = 54
9 X 7 = 63
9 X 8 = 72
9 X 9 = 81
PS C:\Users\harveymei> 
10 月 102020
 
#for循环和if条件判断
#定义列表并赋值给变量
songlist = ['Holy Diver', 'Thunderstruck', 'Rebel Rebel']
#循环从列表中取值赋值给变量
for song in songlist:
    if song == 'Holy Diver': #条件判断,比较当前song的取值
        print(song, ' - Dio') #打印歌曲名称和歌手名称
    elif song == 'Thunderstruck':
        print(song, ' - AC/DC')
    elif song == 'Rebel Rebel':
        print(song, ' - David Bowie')
PS C:\Users\harveymei> & C:/Users/harveymei/AppData/Local/Programs/Python/Python39/python.exe c:/Users/harveymei/hello.py
Holy Diver  - Dio
Thunderstruck  - AC/DC
Rebel Rebel  - David Bowie
PS C:\Users\harveymei>