入門級練習題 1 15

2022-09-01 08:12:08 字數 3900 閱讀 9162

q1:請輸出name變數中的e的索引

name='streing e endse'

count=0

while count < len(name):

if name[count] == 'e':

print(count)

count += 1

q2:判斷輸入的數是幾位數

答案1:

while true:

num=int(input("請輸入乙個數字:"))

count = 1

while true:

if num // (10**count):

count+=1

continue

else:

print("%s是%s位數" % (num, count))

break

答案2:

重點:用死迴圈去讓這個數一直除10,能夠除幾次,就是幾位數.如果是負數,那麼是得不到0的,所以要加乙個絕對值轉換

num=int(input("請輸入乙個整數:")

num=abs(num)

count=0

while 1:

num = num // 10

count += 1

if num == 0:

break

print(count)

q3:判斷標語是否合法

重點:if...in...的用法,注意不能使用 if ('','',) in ...這種寫法

while true:

content=input("請輸入廣告標語:")

if "最" in content or "第一" in content or "稀缺" in "國家級":

# if ["最","第一","國家級"] in content: 錯的

print("不合法")

else:

print("合法")

q4:判斷輸入的數是否是質數

答案1:重點:質數的判斷不僅僅這一種寫法,作為入門級別的題目,很鍛鍊思路

num=int(input("請輸入乙個大於1的自然數:"))

count=2

while count使用for..else...迴圈去做除數

for i in range(2,1001):

for j in range(2,i):

if i % j == 0:

# print(f"不是質數")

break

else:

print(f"是質數")

q5:判斷輸入的數字是否是小數

重點:判斷是否是小數,要盡可能的考慮多種可能性

while 1:

num=input("請輸入乙個數字:")

num_1=num.replace("-","")

if num.count(".") == 1 and not num_1.startswith(".") and not num_1.endswith("."):

print(f'是小數')

else:

print(f'不是小數')

q6: 使用for迴圈對s='123'進行遍歷,列印的內容依次是"倒計時3秒""倒計時2秒""倒計時1秒""出發"

重點:for...else...的使用,把else放在for結構中,而不放在主線程中,是常用的寫法.for的迴圈體中,也可以有break和continue

s='123'

for c in s:

print(f'倒計時秒')

else:

print('出發')

q7: 判斷一句話是不是回文,正著念和反著念一樣

重點:切片中的[::-1]是常用的回文判斷方法

str=input("請輸入一句話:")

if str[::-1] == str:

print(f'--是回文')

else:

print(f'--不是回文')

q8:判斷一句話中,大寫字母出現的次數,小寫字母的次數,數字的次數

重點: 判斷大小寫,數字的函式

str=input("請輸入數字字母組合的一句話:")

daxie=0

xiaoxie=0

shuzi=0

qita=0

for c in str:

if c.isupper():

daxie += 1

elif c.islower():

xiaoxie += 1

elif c.isdigit():

shuzi += 1

else:

qita += 1

print(daxie,xiaoxie,shuzi,qita)

q9: 把列表中的每乙個元素用_下劃線拼接

重點:累加的核心思想,在迴圈中保留上一次的結果

要常用切片[:-1]

lst=['哈','哦','嗯']

s=''

for c in lst:

s += c + "_"

s=s[:-1]

print(s)

q10: 查詢列表中的元素,移除每乙個元素的空格,並找出以"a"或"a"開頭,並且以"c"結尾的所有元素,並新增到乙個新列表中,最後迴圈列印這個新列表

重點:遍歷元素並進行修改的模板,以及(a or b) and c 這種判斷方式的寫法,記得用括號,因為and優先順序比or高

q11: 使用for和range,倒序將100~10中的偶數新增到乙個新列表中,然後僅保留列表中能被4整除的數

重點: 在迴圈體中,進行列表的刪除是乙個坑,因為索引一直在變化.所以要避開

重點:使用集合,這也是集合用的最多的地方

lst=["大力","小牛","搞笑","大力"]

lst=list(set(lst))

print(lst)

q13: 寫乙個彩票開獎的程式,36選7,選滿就停止

重點:使用set()的去重,和randint

from random import randint

s=set()

while len(s)<7:

number=randint(1,36)

s.add(number)

print(s)

q14: 對字串k:1|k1:2|k3:3|k4:4,處理成字典

重點:切割,及對列表的解構

str="k:1|k1:2|k3:3|k4:4"

lst=str.split("|")

dic={}

for item in lst:

k,v=item.split(":")

dic[k]=int(v)

print(dic)

q15:有如下值,li=[11,22,33,44,55,66,77,88,99,90],將所有大於66的儲存到字典的第乙個key中,把小於66的儲存到另乙個key中,即:

li=[11,22,33,44,55,66,77,88,99,90]

# 方案1:手動定好key的數量

# 重點:最基本的寫法,缺點就是當需要很多分類的時候,要手動建立

# 1.若key存在,則返回字典中key對應的value

# 2.若key不存在,則新增乙個key:value鍵值對

入門級練習題 16 22

q16 1.系統隨機生成4位數,作為登入驗證,2.使用者輸入使用者名稱和密碼還有驗證碼,3.共3次登入機會,但如果是驗證碼錯誤,不扣次數 重點 理解驗證碼的迴圈 from random import randint num 0 verify code while num 4 verify code ...

C程式語言練習題1 15

練習1 15 重新編寫1.2節中的溫度轉換程式,使用函式實現溫度轉換計算。如下 include 包含標準庫的資訊。float fahrtocelsius float fahr float celsiustofahr float celsius int main 定義名為main的函式,它不接受引數值...

python入門練習題

1.使用者鍵盤輸入一年份,判斷是否為閏年?如果是閏年,則輸出 是閏年 如果不是閏年,則輸出 不是閏年 判斷閏年的方法 1 能被4整除但不能被100整除 2 能被400整除 2.for迴圈巢狀 列印9 9乘法表 3.輸入兩個數,求這兩個數的最大公約數和最小公倍數 1.企業發放的獎金根據利潤提成。利潤 ...