Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

A loop is blocking the function changeStockPrice, making variable stockA the default value (0.2). Please tell me the problem and how to fix it

I'm pretty sure changeStockPrice is the problem as:

print(get_stocklist())

This gets the default value (0.2)

print(round(abs(stockA + random.randint(-20, 20)/10),1))

This works perfectly (ranging from 0 to 2.2)

This is a simplified version of my code:

import random
import time

stockA = 0.2

def get_stocklist():
  response = f"""Stocks:
  1E Discord {stockA}
  """
  return(response)

def changeStockPrice(stock):
  stock = round(abs(stock + random.randint(-20, 20)/10),1)
  return(stock)

def stockPriceChanger():
  global stockA

  while True:
    time.sleep(5)
    stockA = changeStockPrice(stockA)

print(get_stocklist())
print(round(abs(stockA + random.randint(-20, 20)/10),1))
question from:https://stackoverflow.com/questions/65882172/function-blocked-python

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
123 views
Welcome To Ask or Share your Answers For Others

1 Answer

def stockPriceChanger():
  global stockA

  while True:
    time.sleep(5)
    stockA = changeStockPrice(stockA)
    yield  #break (if you want to break it)

Here, the function goes in the infinite Loop. To avoid this situation you must break the while loop or put some condition to break it.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...