文章目錄
- 一、任務內容
- 1、V1.0指定長度的隨機字串用戶名
- 2、V2.0帶前綴急和隨機字串用戶名
- 3、V3.0帶前綴加序號加隨機字串用戶名
- 4、V4.0生成多組用戶資料
- 5、V5.0將資料保存在檔案中
- 6、V6.0生成帶有序號的資料
- 二、碰到的問題
- 1、問題1:如何將回傳的資料寫入CSV中?
- 2、問題2:如何生成1萬行且帶有序號的用戶名?
一、任務內容
1、V1.0指定長度的隨機字串用戶名
"""
# 創建隨機用戶名
# v1.0 升成指定長度的用戶名
import random
import string
# 輸入要獲取的用戶名長度
minlen = int(input("請輸入用戶名的最小長度:"))
maxlen = int(input("請輸入用戶名的最大長度:"))
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
#(1)確定隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
#(2)亂數的長度獲取隨機字串,串列轉字串
username = "".join(random.sample(str,number))
# username = "-".join(random.sample(str,number))
# username = random.sample(str,number)
# 輸出對應的用戶名
print(number, username)
"""
"""
# v1.1用面向程序進行優化 > 用函式封裝
import random
import string
def get_randomstring():
# 輸入要獲取的用戶名長度
minlen = int(input("請輸入用戶名的最小長度:"))
maxlen = int(input("請輸入用戶名的最大長度:"))
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
# (1)確定隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
# (2)亂數的長度獲取隨機字串,串列轉字串
username = "".join(random.sample(str, number))
# 輸出對應的用戶名
print(number, username)
if __name__ == '__main__':
get_randomstring()
"""
"""
# v1.2用面向程序進行優化 > 提取輸入的變數
import random
import string
def get_randomstring(minlen, maxlen):
# # 輸入要獲取的用戶名長度
# minlen = int(input("請輸入用戶名的最小長度:"))
# maxlen = int(input("請輸入用戶名的最大長度:"))
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
# (1)確定隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
# (2)亂數的長度獲取隨機字串,串列轉字串
username = "".join(random.sample(str, number))
# 輸出對應的用戶名
print(number, username)
if __name__ == '__main__':
min1 = int(input("請輸入用戶名的最小長度:"))
max1 = int(input("請輸入用戶名的最大長度:"))
get_randomstring(min1, max1)
"""
"""
# v1.3用面向程序進行優化, > 添加retrun
import random
import string
def get_randomstring(minlen, maxlen):
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
username = "".join(random.sample(str, number))
# 輸出對應的用戶名
return username
if __name__ == '__main__':
a = int(input("請輸入用戶名的最小長度:"))
b = int(input("請輸入用戶名的最大長度:"))
username = get_randomstring(a, b)
print(username)
"""
# v1.4用面向程序進行優化, > 添加retrun
import random
import string
def get_randomstring(minlen, maxlen):
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
username = "".join(random.sample(str, number))
# 輸出對應的用戶名
return username
if __name__ == '__main__':
a = int(input("請輸入用戶名的最小長度:"))
b = int(input("請輸入用戶名的最大長度:"))
username = get_randomstring(a, b)
print(username)
2、V2.0帶前綴急和隨機字串用戶名
# v2.0 帶前綴的隨機字串用戶名
import random
import string
def get_randomstring(minlen, maxlen, pre):
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
username = "".join(random.sample(str, number))
# 字串加上前綴
username = pre + username
# 輸出對應的用戶名
return username
if __name__ == '__main__':
a = int(input("請輸入用戶名的最小長度:"))
b = int(input("請輸入用戶名的最大長度:"))
pre = input("請輸入前綴字串:")
username = get_randomstring(a, b, pre)
print(username)
3、V3.0帶前綴加序號加隨機字串用戶名
# V3.0帶前綴 加 序號 加 隨機字串用戶名
import random
import string
def get_randomstring(minlen, maxlen, pre, num):
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
username = "".join(random.sample(str, number))
# 字串加上前綴
username = pre + num + username
# 輸出對應的用戶名
return username
if __name__ == '__main__':
a = int(input("請輸入用戶名的最小長度:"))
b = int(input("請輸入用戶名的最大長度:"))
pre = input("請輸入前綴字串:")
num = input("請輸入序號:")
username = get_randomstring(a, b, pre, num)
print(username)
4、V4.0生成多組用戶資料
# V4.0 生成多組隨機用戶名 , 原則是輸入一次,生成了我想要的資料
import random
import string
def get_randomstring(minlen, maxlen, pre, num):
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
username = "".join(random.sample(str, number))
# 字串加上前綴
username = pre + num + username
# 輸出對應的用戶名
return username
if __name__ == '__main__':
pre = input("請輸入前綴字串:")
a = int(input("請輸入用戶名的最小長度:"))
b = int(input("請輸入用戶名的最大長度:"))
count = int(input("你需要多少組用戶名:"))
for i in range(1, count+1):
username = get_randomstring(a, b, pre, str(i))
print(username)
5、V5.0將資料保存在檔案中
# V5.0 將資料保存在CSV中
import random
import string
import csv
def get_randomstring(minlen, maxlen, pre, num):
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
username = "".join(random.sample(str, number))
# 字串加上前綴
username = pre + num + username
# 輸出對應的用戶名
return username
if __name__ == '__main__':
# (1)打開檔案
file = open("userdata.csv", "w", newline="")
# (2)開始編輯
write = csv.writer(file)
pre = input("請輸入前綴字串:")
a = int(input("請輸入用戶名的最小長度:"))
b = int(input("請輸入用戶名的最大長度:"))
count = int(input("你需要多少組用戶名:"))
for i in range(1, count+1):
username = get_randomstring(a, b, pre, str(i))
print(username)
# (3)寫入檔案
write.writerow([username])
# (4)保存關閉檔案
file.close()
6、V6.0生成帶有序號的資料
# V6.0 要求生成檔案第一列是序號,第二列是用戶名
import random
import string
import csv
def get_randomstring(minlen, maxlen, pre, num):
# 在指定長度范圍內生成一個亂數
number = random.randint(minlen, maxlen)
# 按照亂數的長度獲取隨機字串
str = ""
for i in range(1, 11):
str = str + string.ascii_letters
username = "".join(random.sample(str, number))
# 字串加上前綴
username = pre + num + username
# 輸出對應的用戶名
return username
if __name__ == '__main__':
# (1)打開檔案
file = open("userdata.csv", "w", newline="")
# (2)開始編輯
write = csv.writer(file)
pre = input("請輸入前綴字串:")
a = int(input("請輸入用戶名的最小長度:"))
b = int(input("請輸入用戶名的最大長度:"))
count = int(input("你需要多少組用戶名:"))
for i in range(1, count+1):
username = get_randomstring(a, b, pre, str(i))
print(username)
# (3)寫入檔案
write.writerow([i, username])
# (4)保存關閉檔案
file.close()
二、碰到的問題
1、問題1:如何將回傳的資料寫入CSV中?
# 將資料寫入CSV中
# 匯入庫檔案
import csv
# (1)新建一個CSV檔案
file = open("userdata.csv", "w", newline="")
# (2)創建編輯器
write = csv.writer(file)
# (3)寫入檔案
# write.writerow("jiao")
write.writerow(["jiao", "teng", "fei"]) # 添加多個列,其中[]去除了逗號
write.writerow(["jiao1"]) # 輸入第二行的內容
write.writerow(["jiao2"]) # 輸入第三行的內容
# (4)保存并關閉檔案
file.close()
# 問題1:直接寫入的內容是用逗號分開的
# 問題2:多行寫入行之間又空格,去除空格,所以newline=""
2、問題2:如何生成1萬行且帶有序號的用戶名?

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299505.html
標籤:其他
上一篇:從uptime、stress、mpstat、pidstat觀察CPU密集型、IO密集型、行程密集型切換的系統性能
